.VBS
[長所] : すぐコードを書き始められるので簡単です。
[短所] : 外部のコードを使え無いので、全て一つのテキストに書く必要があります。
.WSF
[長所] : 外部ファイルをローカルやWEBから取り込む事ができます。これは強力です。
( さらに、ソース内にテキストデータを持つ事ができます。)
[短所] : フォーマットが決まっているので、雛型が必要です。
( 殆ど短所とは言えない内容です。)
それでも、すぐ簡単にテストしたい場合は、.VBS で書く事が多いですが、正式に運用に使うような場合はやはり .WSF にします。
SCRIPT 要素内に VBScript のコードを記述します。SCRIPT 要素には、HTML 上で書くのと同じ src 属性が使えますので、それを使って関数や定義や処理を外部に置いて利用します
以下は、.WSF の簡単な雛型です。
skeleton.wsf
<JOB>
<COMMENT>
********************************************
※ COMMENT 要素内はコメントです
※ WScript.Shell は、良く使う基本的なオブジェクトです
※ Scripting.FileSystemObject はテキストファイル用です
********************************************
</COMMENT>
<OBJECT id="WshShell" progid="WScript.Shell" />
<OBJECT id="Fso" progid="Scripting.FileSystemObject" />
<SCRIPT language="VBScript">
'*******************************************
' 処理開始
'*******************************************
' ソース内テキストデータの表示
Wscript.Echo RegTrim(GetResource("myTextData"))
' GUI
if vbCancel = MsgBox( "処理が終了しました ", vbOKCancel , "サンプル" ) then
Wscript.Echo "キャンセルされました"
end if
'*******************************************
' 文字列前後の漢字スペースを含むホワイトスペースの削除
'*******************************************
Function RegTrim( strValue )
Dim regEx, str
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Pattern = "^[ \s]+"
str = regEx.Replace( strValue, "" )
regEx.Pattern = "[ \s]+$"
RegTrim = regEx.Replace( str, "" )
End Function
</SCRIPT>
<COMMENT>
********************************************
ソース内テキストデータ
********************************************
</COMMENT>
<RESOURCE id="myTextData">
<![CDATA[
ここにテキストデータを用意します
]]>
</RESOURCE>
</JOB>
厳密に言うと XML 要素に関してはいろいろあるのですが、説明し出すとよけい解りにくくなります。長年動いていて、問題の出にくい雛型であるというふうに軽い認識でいいと思います。
※ Microsoft のドキュメント見ると、必ず混乱するので無視して下さい。