我试图在wsh.run命令中将变量替换为path (它应该启动一个批处理文件),但我在dos控制台中发现了一个错误:“文件名、目录名或卷标签语法不正确”。
在这里,工作的代码:
Sub TestDos()
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim fBatFile As String
Dim ErrorCode As Integer
Dim wkPath As String
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
wkPath = Application.ActiveWorkbook.Path
fBatFile = wkPath & "\run.bat"
ErrorCode = wsh.Run("cmd.exe /c cd /d G:\Projects && G:\Projects\run.bat", windowStyle, waitOnReturn)
Debug.Print ErrorCode
End Sub我试过:
ErrorCode = wsh.Run("cmd.exe /c cd /d wkPath && fBatFile", windowStyle, waitOnReturn)或者:
ErrorCode = wsh.Run("cmd.exe /K cd /d " & wkPath & fBatFile & "", windowStyle, waitOnReturn)但不起作用。有人能帮我吗?
发布于 2019-11-16 10:12:53
我找到了解决办法:
ErrorCode = wsh.Run("cmd.exe /c cd /d“& wkPath & fBatFile,windowStyle,waitOnReturn)
我找不到一个清晰的网页来解释我们何时和如何需要'&‘和“。官方文件对我来说很模糊。
无论如何,即使这一次,它已经完成了!
P.S.:如果我使用"cmd.exe /k“(我将dos控制台打开),而不是'/c',则VBA编辑器会给出一个”溢出“错误。幸运的是,我需要在批处理文件的末尾关闭dos控制台。
https://stackoverflow.com/questions/58876322
复制相似问题