バッチファイルにJavaScriptを埋め込む (その2)
だいぶまえに、バッチファイルにJavaScriptを埋め込む方法とその例を書きました。
その後よくよく検証してみると、これではいくつか問題がある気がしてきました。
- //bのように、//で始まる引数をバッチファイルに指定できない (cscriptのオプションと解釈されてしまう)。
WScript.quit(…)
で指定した終了コードがバッチファイルの終了コードとならない。
なので書き直してみました。
@if (0==1) /* @echo off setlocal enableextensions disabledelayedexpansion goto CSCRIPT */ @end WScript.quit(1); /* :CSCRIPT echo */// > nul & "%SystemRoot%\system32\cscript.exe" "%~f0" //E:JScript //Nologo // %*
この例ではWScript.quit(1)
としているので、バッチファイルの終了コードも1となるはずです。