はじめに
.bat→.vbsに変数を渡し実行したかったのでやり方をまとめました。
コード
使用したコードは下記です。
① 変数をvbsファイルに渡して実行
batファイルからvbsファイルに変数を渡すにはcscriptコマンドを使用します。
複数の変数を送る場合は末尾に追加します。
SendVarToVBS
REM 変数取得
Set variable1=%CD%
REM vbs実行
cscript hogehoge.vbs %variable1%
REM 複数の場合
cscript hogehoge.vbs %variable1% %variable2%
② 変数を受け取り、処理実行
vbsファイルで変数を受け取るにはWScriptオブジェクトのArgumentsプロパティを使用します。
送られてきた変数の参照は、オブジェクト変数にインデックス番号を指定して参照します。
インデックスは0からなので、変数を1つ送った場合はWScript.Arguments(0)が一つ目の変数値です。
送られてきた変数の数はWScript.Arguments.Countで確認できるので
変数の数が0だったらエラーにする、そうでなければ変数値をメッセージボックスで表示するというプログラムにしています。
vbsRun
' 変数宣言
Dim arg
Set arg=WScript.Arguments
' 変数存在CHK
If arg.Count = 0 then
Msgbox "引数がありません"
WScript.Quit
Else
msgbox "送られてきた変数値は" & arg(0) & "です"
End If
終わりに
変数を渡すのも受け取るのもそんなに難しくなく対応できました。
参考になれば幸いです。