首页 > 解决方案 > 使用 cmd.exe 调用 shell 与 Wscript.Shell

问题描述

我正在使用以下代码,它工作正常。

path = "cd C:\Program Files\bin & AppX File.txt"

Call Shell("cmd.exe /k " & path, vbNormalFocus)

但是,我必须使用 waitOnreturn 所以我更改为以下代码,它不再工作了。

path = "cd C:\Program Files\bin & AppX File.txt"
Dim wsh As Object
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
Set wsh = VBA.CreateObject("WScript.Shell")
wsh.Run ("cmd.exe /k " & path & ", windowStyle, waitOnReturn") 

错误是“无法读取文件“File.txt”:没有这样的文件或目录“但文件在那里。文件名是File.txt。该程序的名称是 AppX。如果我首先将方向更改为 AppX 路径,该程序允许我使用 cmd.exe 运行该文件。然后,要使用 cmd.exe 运行文件,我需要运行“AppX File.txt” 是否有使用 WScript.Shell 代码运行的东西

标签: vbashellcmd

解决方案


由于该文件的名称中有空格,因此您需要将路径用引号引起来。所以像:

path = "cd \"C:\Program Files\bin & AppX File.txt\""

推荐阅读