【问题标题】:VBScript not executing command-prompt command?VBScript 不执行命令提示符命令?
【发布时间】:2017-09-18 18:39:18
【问题描述】:

我正在使用以下 VBScript 代码来提取安装文件,

Set oShell = CreateObject ("WScript.Shell") 
oShell.Run "cmd.exe ""C:\Program Files\NewFolder\setup.exe"" /extract:""C:\Program Files\NewFolder"" "

在命令提示符中手动完成时效果很好。但在 VBScript 中,它只打开命令提示符,没有任何反应。

我也试过了,

Set oShell = CreateObject ("WScript.Shell") 
oShell.Run "%comspec% /K ""C:\Program Files\NewFolder\setup.exe"" /extract:""C:\Program Files\NewFolder"" "

这样说,

'C:\Program' 不是内部或外部命令、可运行程序或批处理文件。

我也试过这些,

Set oShell = CreateObject ("WScript.Shell") 
oShell.Run "cmd.exe /c ""C:\Program Files\NewFolder\setup.exe"" /extract:""C:\Program Files\NewFolder"" "

Set oShell = CreateObject ("WScript.Shell") 
oShell.Exec "cmd.exe ""C:\Program Files\NewFolder\setup.exe"" /extract:""C:\Program Files\NewFolder"" "

它不起作用。

请问这里有什么问题?

【问题讨论】:

  • 执行命令离开需要使用cmd /c
  • cmd /ccmd.exe /c%comspec% /c 中的任何一个都可以正常工作。使用/k 而不是/c 以防止CMD 窗口关闭,因此您可以检查命令输出。您在尝试时收到的错误消息表明,与您声称的相反,您没有将 setup.exe 的路径放在引号中。
  • 我尝试了/k,我收到了'C:\Program' is not recognized as as internal or external command, operable program or batch file.的消息
  • 就像我说的,这只会发生在引用丢失或损坏的情况下。
  • @CodenameK 你能提供setup.exe(上传到dropbox之类的)所以我们自己测试一下?

标签: vbscript cmd command-line-arguments extract


【解决方案1】:

您的可执行文件中的自解压器似乎无法处理带有空格的路径。作为一种解决方法,您可以更改工作目录并在没有路径的情况下调用 setup。

Set sh = CreateObject ("WScript.Shell")
sh.CurrentDirectory = "C:\Program Files\NewFolder"
sh.Run "%COMSPEC% /c setup.exe /extract:."

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-10-26
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-03
相关资源
最近更新 更多