我目前正在使用vbscript执行批处理文件,只是在每次运行批处理时隐藏cmd窗口弹出。
我现在要完成的是将参数传递给该批处理文件。 vbs与wscript "c:\batchlauncher.vbs" "c:\batch.bat"
一起运行。我正在寻找类似的事情; wscript "c:\batchlauncher.vbs" "c:\batch.bat" ["batch.argument"]
以任何顺序或语法完成我需要的任务。
这就是我所拥有的:
batchlauncher.vbs
'--------------------8<----------------------
sTitle = "Batch launcher"
Set oArgs = WScript.Arguments
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")
If oArgs.Count <> 1 Then
' Will die after 10 seconds if no one is pressing the OK button
oShell.Popup "Error: You need to supply a file path " _
& "as input parameter!", 10, sTitle, vbCritical + vbSystemModal
Wscript.Quit 1
End If
sFilePath = oArgs(0)
If Not oFSO.FileExists(sFilePath) Then
' Will die after 10 seconds if no one is pressing the OK button
oShell.Popup "Error: Batch file not found", _
10, sTitle, vbCritical + vbSystemModal
Wscript.Quit 1
End If
' add quotes around the path in case of spaces
iRC = oShell.Run("""" & sFilePath & """", 0, True)
' Return with the same errorlevel as the batch file had
Wscript.Quit iRC
'--------------------8<----------------------
答案 0 :(得分:2)
您将参数传递给批处理文件的位置是什么?您需要从vbs内部执行此操作。 .vbs获取的任何“额外”参数都将位于oArgs数组中。将两个参数放入.vbs文件时,需要将第二组参数传递给oShell.Run
命令行。
所以我改变了这一行
If oArgs.Count <> 1 Then
到这个
If oArgs.Count <> 2 Then
然后说
sFilePath = oArgs(0)
sArg = oArgs(1)
然后
iRC = oShell.Run("""" & sFilePath & """" & sArg, 0, True)