2016-11-26 86 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

你需要批量間參數之間的空格。 – 2016-11-26 23:40:21

回答

2

您需要兩個參數之間的空間,否則批處理文件將看到的只是一個參數。

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

變得

WshShell.Run "T.bat foobar" 

爲了避免無意級聯變化這樣的:

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

成這樣:

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 –

相關問題