HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0731
T.Tコマンドライン付きファイル名を変換したい...7解決


T.T

リンク

2014/7/31(Thu) 18:53:47|NO.63237

初歩的(?)なことをお聞きします。
コマンドライン付きファイル名を変換したいです。
具体的には、
Existでファイルの有無を調べるとき

Exist dir_sys+"\\cmd.exe /c set" mes strsize
とするとstrsizeが-1となってしまいます。
単純に半角以降の文字を消して調べると
"C:\Program File\XXX.EXE" -s -t
のようなパスの時などに対応すると時間がかかる気がします。
GetPathでも無理なようです。
単純にファイルの有無を調べるだけなのであまり時間は掛けたくないです...
APIなどがあるのでしょうか...
よろしくお願いします。m(_ _)m



この記事に返信する


kanahiron

リンク

2014/7/31(Thu) 20:06:24|NO.63241

さっきのおかしかったので結局strmidにしましたorz
	path = "\"C:\\program files\\hogehoge.exe -h\""
;path = "C:\\windows\\hogehoge.exe -h" mes path if peek(path,0) = '\"' :path = strmid(path,1,instr(path,0,".exe")+3):else:path = strmid(path,0,instr(path,0,".exe")+4) mes path
無理やり一行です
見づらかったらinstrを適当な変数に代入して書き換えれば見やすいと思います



T.T

リンク

2014/7/31(Thu) 22:18:08|NO.63247

すみません。
.exe以外に対応するにはどうすればいいでしょうか?



Tetr@pod

リンク

2014/7/31(Thu) 22:42:08|NO.63251

インスパイヤ・フロム・kanahironさん。

path = "\"C:\\Program Files\\ABC.BAT\" -a -x" ;path = "C:\\Windows\\System32\\XYZ.CMD -a -s" ;path = "\"C:\\Windows\\555.COM\" -d -p -m" mes "["+path+"]" if%<=instr(path,,"\""):path=strmid(path,instr(path,,"\"")+1,instr(path,instr(path,,"\"")+1,"\"")):else:path=strmid(path,$,instr(path,," ")) mes "["+path+"]"
削り過ぎたかも。



T.T

リンク

2014/8/1(Fri) 08:22:35|NO.63262

すみません。

path = "C:\\Windows\\System32\\notepad.exe" mes "["+path+"]" if%<=instr(path,,"\""):path=strmid(path,instr(path,,"\"")+1,instr(path,instr(path,,"\"")+1,"\"")):else:path=strmid(path,$,instr(path,," ")) mes "["+path+"]"
空出力してしまいます..



Satio Soft

リンク

2014/8/1(Fri) 08:41:58|NO.63263

exe以外でプログラムを実行したいのならば、run命令を使ったらどうですか?

run "sample.ax" stop
拡張子はaxなので、あらかじめstart.axを作成しといてください。
start.axのstartは好きな名前にしといてください。



T.T

リンク

2014/8/1(Fri) 08:49:16|NO.63264

>Satio Soft氏
そうゆうことじゃないですね〜(^^;

ユーザーが入力したパスを実行する。と言う動作でユーザーの入力したパスが
存在するかどうかのチェックをします。
しかし、そこでユーザーが[cmd.exex /c set]などと入力すると、
Exits が-1を吐いてしまいます。
EXECではなくCOMでVBSを呼び出して使うのでonerrorが使えないんですよ...



T.T

リンク

2014/8/1(Fri) 11:18:41|NO.63274


path = "\"C:\\Program Files\\ABC.BAT\" -a -x" path = "C:\\Windows\\System32\\XYZ.CMD -a -s" path = "\"C:\\Windows\\555.COM\" -d -p -m" path = "C:\\Windows\\System32\\notepad.exe" path2 = path mes "["+path+"]" if%<=instr(path,,"\""):path=strmid(path,instr(path,,"\"")+1,instr(path,instr(path,,"\"")+1,"\"")):else:path=strmid(path,$,instr(path,," ")) if path="" : path=path2 mes "["+path+"]"
とりあえずこのような感じにしました。
皆様有難うございました!



ONION software Copyright 1997-2021(c) All rights reserved.