我在名為“Launch.vbs”的 VBS 檔案中有以下內容:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
我可以從這樣的批處理檔案中呼叫它:
wscript.exe "Launch.vbs" "ProgramIWantToStartInBackground.exe"
但是,這不允許我向它傳遞引數,例如:
wscript.exe "Launch.vbs" "ProgramIWantToStartInBackground.exe" "Parameter"
wscript.exe "Launch.vbs" "ProgramIWantToStartInBackground.exe" Parameter
在上述兩個示例中,程式確實在后臺啟動,但沒有收到任何給定的引數。
如何修改 vbscript 代碼以允許引數?
uj5u.com熱心網友回復:
有很多方法可以解決這個問題,但歸根結底是了解程式如何從命令提示符運行。
這一行將launch.vbs包裝任何以雙引號傳遞的命令,這僅適用于可執行檔案,但在傳遞引數時會導致問題,因為只有可執行檔案路徑應包含在雙引號中,以避免出現任何空格的問題在路徑中。
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
相反,您有兩個選擇。
將兩個引數傳遞給
launch.vbs并且只用雙引號將第一個引數括起來。CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """ " & WScript.Arguments(1), 0, False執行使用;
wscript.exe "Launch.vbs" "ProgramIWantToStartInBackground.exe" Parameter執行為;
"ProgramIWantToStartInBackground" Parameter移除包裝并應用于傳入的引數。
CreateObject("Wscript.Shell").Run WScript.Arguments(0), 0, False執行使用;
wscript.exe "Launch.vbs" ""ProgramIWantToStartInBackground.exe" Parameter"執行為;
"ProgramIWantToStartInBackground" Parameter
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312620.html
