在后台启动文件时,如何让这个 vbs 脚本接受参数?
How do I make this vbs script accept parameters when launching a file in the background?
我在名为“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 代码以允许参数?
有很多方法可以解决这个问题,但归根结底是了解程序如何从命令提示符 运行。
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
我在名为“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 代码以允许参数?
有很多方法可以解决这个问题,但归根结底是了解程序如何从命令提示符 运行。
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