I have a batch script:
test.bat
echo first arg is %1
pause
我想从一个带有管理员权限的VBScript中调用:
test.vbs
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "test.bat", "argument", "", "runas", 1
这段代码本身没问题,但是我不能将包含空格的路径参数作为单个参数传递。基本上,我需要在空格中括起来,但无论我尝试什么,都不起作用。它看起来调用了批处理文件,但是命令窗口只是一闪而过,我不知道出了什么问题。
我尝试了以下方法:
UAC.ShellExecute "test.bat", """has spaces""", "", "runas", 1
并且
UAC.ShellExecute "test.bat", Chr(34) & "has spaces" & Chr(34), "", "runas", 1
并且
UAC.ShellExecute "test.bat", '"has spaces"', , "runas", 1
并且
UAC.ShellExecute "cmd", "/c test.bat " & chr(34) & "has spaces" & chr(34), "", "runas", 1
但是没有运气。有什么建议我做错了吗?
UAC.ShellExecute "cmd", "/c test.bat " & chr(34) & "has spaces" & chr(34), "", "runas", 1
- Alex K.