WScript.Shell似乎忽略了转义引号

时间:2018-01-31 11:36:32

标签: vbscript

在以下脚本中:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%comspec% /k" & _
    " ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\TF.exe"" " & _
    "move ""C:\Automation\Custom_UiPath_Activities\NuPackages\*.nupkg"" ""C:\Automation\Custom_UiPath_Activities\NuPackages\Old""", 1, True

它给出错误

  

'C:\ Program'不被识别为内部或外部命令。

似乎是因为第一个参数周围的转义引号被忽略了。 我已经尝试将字符串记录到文本文件中,并且在将输出的字符串复制到CMD时,它按预期工作。

我看不出我做错了什么。

1 个答案:

答案 0 :(得分:0)

如果要在CMD中使用菊花链命令,则需要在它们之间放置一个&符号(&)作为命令行的一部分。您的代码使用&符号作为VBScript字符串连接运算符。此外,要通过cmd /k(或cmd /c)运行多个命令,您需要在它们周围添加一组双引号。此外,使用变量和引用函数有助于保持代码可读。

Function qq(s) : qq = """" & s & """" : End Function

tf = "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\TF.exe"
src = "C:\Automation\Custom_UiPath_Activities\NuPackages"
dst = "C:\Automation\Custom_UiPath_Activities\NuPackages\Old"

Set WshShell = CreateObject("WScript.Shell")

WshShell.Run "%comspec% /k """ & qq(tf) & " & " & _
    "move " & qq(src & "\*.nupkg") & " " & qq(dst) & """", 1, True
相关问题