WSH WSF JScript・VBScript をバッチに埋め込む方法(現在時刻を読み上げるバッチファイル)
メモ
タイトルの通り、wsf 形式のWSHスクリプトをバッチファイルに埋め込む方法です。
wsfを使えば、VBScript と JScript を混在させたり、
HTML の scriptタグ と同じように記述できるのでCDNを利用できます。
バッチに埋め込むメリットは、用途次第ということで省略。
コマンド
おまじない部分は、下記の通り。
<!-- : @%windir%\System32\cscript.exe //nologo "%~f0?.wsf" %* @exit /b %errorlevel% -->
これを駆使して、現在時刻を読み上げる機能を作ると下記のようになります。
<!-- : @%windir%\System32\cscript.exe //nologo "%~f0?.wsf" %*||pause @exit /b %errorlevel% --> <!-- : WSH WSF をバッチに埋め込む方法 サンプル: 現在時刻を読み上げるバッチファイル --> <job> <script language="VBScript"> ' 現在時刻を返すだけ の関数 Function GetDateTime() GetDateTime = Now End Function </script> <script language="JScript"> /** * @brief エントリーポイント用即時関数 */ WSH.Quit(function () { var sp = WSH.CreateObject("SAPI.SpVoice"); // 現在時刻を読み上げる sp.Speak(GetDateTime()); return 0; }()); </script> </job>
参照
埋め込む方法は、下記から。 stackoverflow.com