VBS中解决路径带空格的三种方法
方法一
Set wshell=CreateObject("WScript.Shell")
wshell.Run """C:\Program Files\360\360se\360se.exe""",5,True
Set wshell = Nothing
备注说明:
命令格式:object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
因为strCommand必须是一个字符串,那么wshell.Run """这里的三个引号,最左面的是指字符串,后面紧跟着的两个引号会被转化成一个引号。
还有使用执行命令行参数的,也是同样的使用两个引号,如:我使用7z命令压缩文件夹
我们正常情况下,可以使用以下命令将文件夹压缩为7z格式:
"D:\Program Files\7-Zip\7z.exe" a -t7z .\folder.7z "D:\Program Files\Logs\"
在上述示例中,a表示添加文件到压缩包,-t7z表示压缩格式为7z,folder.7z表示压缩后的文件名,folder表示要压缩的文件夹名。
那么如果使用vbs执行的话,
object.Run("""D:\Program Files\7-Zip\7z.exe"" a -t7z .\folder.7z ""D:\Program Files\Logs\""" ,0,false)
以下方法同样,就不一一解释了。
方法二
temp="C:\Program Files\360\360se3\360se.exe"
path = Chr(34) & temp & Chr(34)
Set wshell=CreateObject("WScript.Shell")
wshell.Run path,1,True
Set wshell = Nothing
方法三
Public Const vbQuote = """"
temp="C:\Program Files\360\360se3\360se.exe"
path = vbQuote & temp & vbQuote
Set wshell=CreateObject("WScript.Shell")
wshell.Run path,1,True
Set wshell = Nothing
备注:
【出处】:https://www.cnblogs.com/BeyondTechnology/p/1936514.html
=======================================================================================
来自 VBscript 的带有空格的 Cmd 命令
Posted 2023-04-19
技术标签:
【中文标题】来自 VBscript 的带有空格的 Cmd 命令【英文标题】:Cmd commands with spaces from VBscript 【发布时间】:2017-12-12 13:58:44 【问题描述】:我正在尝试通过命令行使用 VBScript 执行 SAS 代码。但是,我在将命令从 VBScript 正确传递到命令行时遇到问题。我很确定这是正确使用引号和chr(34)
的问题,但我无法弄清楚。
所以我想在命令行中运行以下命令:
"C:\Program Files\SAS 9.4\sas.exe" -SYSIN "C:\Program Files\test.sas"
我尝试过类似的东西
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "cmd.exe /K copy ""C:\Program Files\SAS 9.4\sas.exe"" -SYSIN ""C:\Program Files\test.sas"" ", 1, True
Set oShell = Nothing
但是我在命令行中得到一个无效的语法错误。有什么好主意吗?
【问题讨论】:
【参考方案1】:CMD /K
需要一个参数。如果参数包含空格,则必须引用参数。所以完整的命令应该是这样的:
oShell.run "cmd.exe /K "" ""C:\Program Files\SAS 9.4\sas.exe"" -SYSIN ""C:\Program Files\test.sas"" "" ", 1, True
通常,人们不得不担心嵌套的引用/转义,但是 /C 和 /K 开关在引号的工作方式上是特殊的(CMD /?
解释了细节)。如果它看起来像一个单引号参数,则CMD
会自动忽略其中的任何引号。
【讨论】:
哦,是的,我在尝试 google 时感到困惑。所以我要执行的命令只是oShell.run "cmd.exe /K "" ^""C:\Program Files\SAS 9.4\sas.exe^"" -SYSIN ^""C:\Program Files\test.sas^"" "" ", 1, True
因为这应该在命令行中运行 test.sas 文件。但是,上述方法不起作用。我收到一个错误 ` '"C:\Program' `,我认为这表明引用不起作用:-/ 啊,对不起,我自己弄错了。 CMD /K
对引号有特殊的行为,这在 CMD 的其他任何地方都看不到,我忘记了。我已经更正了原来的答案。 像魅力一样工作。非常感谢 - 现在我的工作会简单得多;-)
以上是关于来自 VBscript 的带有空格的 Cmd 命令的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows .cmd 文件或批处理文件的路径中设置带有空格的路径变量
出处:https://it.cha138.com/zd/show-19389358.html
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/17659531.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!