« ショートカットの「実行時の大きさ」を「非表示」にする。(その2) | トップページ | 一時ファイルにスクリプトを書いて子プロセスを起こす。 »

2007年11月 6日 (火)

バッチファイルからインラインのVBScriptスクリプト

初期のWScript.exe/CScript.exeでは、スクリプトファイルを作らなくても、
- を指定すると、標準入力からスクリプトを読み込んで実行できました。
これを使ってバッチファイルからインラインスクリプトが実行できました。
後のWScript.exe/CScript.exeでは、これができなくなりました。
そこで、代わりに一時ファイルのスクリプトファイルを作るパラダイムです。

一時ファイルをバッチファイル側で削除する例
SetLocal
Set File=%TEMP%\tmp%RANDOM%.vbs
Echo MsgBox "%File%" >"%File%"
WScript.exe "%File%"
Del "%File%"

一時ファイルをスクリプト側で削除する例
SetLocal
Set File=%TEMP%\tmp%RANDOM%.vbs
Echo CreateObject("Scripting.FileSystemObject").DeleteFile WScript.ScriptFullName >"%File%"
Echo MsgBox "%File%" >>"%File%"
WScript.exe "%File%"

1行スクリプトの例
CMD /V:ON /S /C "Set File=!TEMP!\tmp!RANDOM!.vbs & Echo MsgBox "!File!" >"!File!" & WScript.exe "!File!" & Del "!File!""

« ショートカットの「実行時の大きさ」を「非表示」にする。(その2) | トップページ | 一時ファイルにスクリプトを書いて子プロセスを起こす。 »