首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Wscript.Shell + cmd.exe中使用变量?

如何在Wscript.Shell + cmd.exe中使用变量?
EN

Stack Overflow用户
提问于 2019-11-15 11:41:33
回答 1查看 563关注 0票数 1

我试图在wsh.run命令中将变量替换为path (它应该启动一个批处理文件),但我在dos控制台中发现了一个错误:“文件名、目录名或卷标签语法不正确”。

在这里,工作的代码:

代码语言:javascript
运行
复制
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

我试过:

代码语言:javascript
运行
复制
ErrorCode = wsh.Run("cmd.exe /c cd /d wkPath && fBatFile", windowStyle, waitOnReturn)

或者:

代码语言:javascript
运行
复制
ErrorCode = wsh.Run("cmd.exe /K cd /d " & wkPath & fBatFile & "", windowStyle, waitOnReturn)

但不起作用。有人能帮我吗?

EN

Stack Overflow用户

回答已采纳

发布于 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控制台。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58876322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档