感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

バッチファイルから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)