バッチファイルからVBScriptを実行する

VBScript。
いまどき使うの?って思う人もいるかもしれないけれど、なんだかんだWindowsに縛られる環境では、C#とかVBScriptとかがWindowsの機能を使いこなせて便利だったりする。
友人の会社などでは、インターネット接続が制限されているらしく、そういう人はWindows標準の機能しか使えない。
で、そんなときになんか自動化したいこともあるだろう。

そこで出てくるのがVBScriptなんですよ。

バッチファイルを叩いて、そこからVBScriptを実行したい場合のサンプルです。

・action.bat

echo off
rem batファイルからVBScriptを実行するサンプル
cls
cscript test.vbs C:\Dev\VBScript\read.txt //nologo
rem 処理結果の判定
if %errorlevel% equ 0 (
echo [BATCHLOG]NORMAL END
pause
exit 0
) else (
echo [BATCHLOG]ABNORMAL END
pause
exit -1
)

echo offというのは、カレントディレクトリなどの表示をOFFにするものです。
clsは画面をクリアします。
pauseはバッチが終了してもコンソールウィンドウを閉じないようにするコマンドです。

・test.vbs

Set objFS = Createobject("Scripting.FilesystemObject")
Set objWSArg = WScript.Arguments
strFile = objFS.GetAbsolutePathName(objWSArg(0))
If objFS.FileExists(strFile) = False Then
WScript.Echo "[VBLOG]" & strFile
WScript.Echo "[VBLOG]指定したファイルがありません"
WScript.Quit(-1)
End If
Set objTextStream = objFS.OpenTextFile(strFile,1)
If objTextStream.AtEndOfStream = False Then
strText = objTextStream.ReadAll
WScript.Echo strText
End If
objTextStream.Close
Set objTextStream = Nothing
Set objFS = Nothing

これは引数に渡されたテキストの文字列を読み込んで表示するVBScriptのサンプルです。
実行すると、以下のように、読み込んだテキストに書いてある文字列が表示されます。

hoge
fuga
foo
bar
[BATCHLOG]NORMAL END
続行するには何かキーを押してください . . .

<参考文献>

[改訂版] VBScriptポケットリファレンス (POCKET REFERENCE)

[改訂版] VBScriptポケットリファレンス (POCKET REFERENCE)