【发布时间】:2016-05-16 12:52:42
【问题描述】:
例如,我一直在尝试从路径启动 myFileToRun.bat 文件。
D:\My Folder\batchfiles\myFileToRun.bat
下面是我试图通过它运行它的 VBScript。
Dim WshShell, strCurrentDirectory
Set WshShell = CreateObject("WScript.Shell")
strCurrentDirectory = WshShell.CurrentDirectory
WshShell.Run strCurrentDirectory & "\myFileToRun.bat" , 0
Set WshShell = Nothing
我无法运行它,因为 VBS 在“系统找不到指定的文件”中出现错误 我已经尝试过 stackoverflow 和其他论坛中其他类似帖子中提到的各种方法。他们中的大多数人都说要添加双引号。
注意:我试过加双引号,例如双双引号
1.WshShell.Run """strCurrentDirectory & "\myFileToRun.bat" "", 0
2.WshShell.Run """"strCurrentDirectory & "\myFileToRun.bat"""", 0
3.WshShell.Run """"strCurrentDirectory & \myFileToRun.bat"""", 0
他们都没有工作,因为我猜我在错误的地方给出了报价。变量 strCurrentDirectory 更改为“strCurrentDirectory”而不是“D:\My Folder\batchfiles”,因此我的最终路径将是“strCurrentDirectory”“\myFileToRun.bat”,这是错误的。我需要路径是“D:\My Folder\batchfiles\myFileToRun.bat”和要运行的文件。
我还没有真正理解这些添加引号的概念。 所以你能解释一下这个概念并帮助我解决这个错误吗?
编辑:我已经找到了解决方案。由于我必须引用当前目录,所以我只是简化了脚本。
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "myFileToRun.bat", 0
Set WshShell = Nothing
谢谢大家的回答。很有帮助。
【问题讨论】:
-
你只需要转义任何你想要的引号作为参数的一部分,你可以通过将它们加倍
""来做到这一点。您的尝试不起作用,因为您忘记连接字符串 (这就是为什么变量strCurrentDirectoryget 被添加为字符串的一部分而不是它的值),试试这个 -WshShell.Run """" & strCurrentDirectory & "\myFileToRun.bat""", 0
标签: windows batch-file vbscript path filepath