イネマルのプログラミング備忘録

趣味プログラマのメモ

WSH WSF JScript・VBScript をバッチに埋め込む方法(現在時刻を読み上げるバッチファイル)

メモ

タイトルの通り、wsf 形式のWSHスクリプトをバッチファイルに埋め込む方法です。
wsfを使えば、VBScriptJScript を混在させたり、
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