2016-11-26 10 views
1

私はVBScriptからバッチにパラメータを渡そうとしています。VBScriptからバッチに変数を渡す方法は?

これは私のVBScriptです:

Var1 = "foo" 
Var2 = "bar" 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.Run "T.bat "& Var1 & Var2 

、これが私のバッチファイルです:

@echo off 
echo %1 
echo %2 
pause>nul 
+0

いいですが、間違っていますか?いくつかのエラーメッセージ?予期しない動作?あなたの質問を編集してください... – JosefZ

+2

バッチでパラメータ間にスペースが必要です。 –

答えて

2

あなたはそれ以外の場合は、バッチファイルが1つだけの引数が表示されます、2つの引数の間のスペースを必要としています。このように

WshShell.Run "T.bat "& Var1 & Var2 

WshShell.Run "T.bat "& Var1 & Var2 

この不注意な連結の変更を回避するために

WshShell.Run "T.bat foobar" 

なる

WshShell.Run "T.bat "& Var1 & " " & Var2 

または(より良い)本:

WshShell.Run "T.bat """& Var1 & """ """ & Var2 & """" 

追加の二重引用符は、引数のスペースを処理するためのものです。サイドノートとして

Function qq(str) 
    qq = """" & str & """" 
End Function 

WshShell.Run "T.bat "& qq(Var1) & " " & qq(Var2) 

:あなたは引用機能を使って、それが少し読みやすくすることができ、あなたのバッチファイルであなたの代わりにちょうど%1%2%~1%~2を使用することもできます。チルダは、パラメータから外側の二重引用符を削除します。

+0

私はforrrrをロックしていたexeactly wahtaありがとう –

関連する問題