とりあえずやってみようと、ファイルのエンコードをUTF-8にしてスクリプトを書いてみます。
test.js
WScript.Echo("ほげ");
実行結果:Microsoft JScript コンパイル エラー: 終了していない文字列型の定数です。ダメです。マルチバイトを上手く解釈してくれません。弱った。
そういえば、wsfならエンコードを指定できます。試してみましょう。
test.wsf
<?xml version="1.0" encoding="utf-8" ?>
<package>
<job>
<?job error="True" debug="True" ?>
<runtime/>
<script language="JScript">
<![CDATA[
WScript.Echo("ほげ");
]]>
</script>
</job>
</package>
実行結果:ほげ上手く行きました。
ちょっとしたスクリプトならこれでいいのですが、多少気合を入れる時には、ファイルを分割してインクルードしたくなるでしょう。
test.wsf
<?xml version="1.0" encoding="utf-8" ?>
<package>
<job>
<?job error="True" debug="True" ?>
<runtime/>
<script language="JScript" src="./test.js"/>
<script language="JScript">
<![CDATA[
main();
]]>
</script>
</job>
</package>
test.js
function main()
{
WScript.Echo("ほげ");
}
実行結果:Microsoft JScript コンパイル エラー: 終了していない文字列型の定数です。ムキー、なんだよー、とならずに冷静に。
こういうこういう時は、ファイルに「BOM」をつけるといいですよ。