基本上我有一个批处理文件,我正在使用 excel vba 中的 runcmd 函数运行
Function runCmd(fileCommand As String) As Boolean
On Error GoTo Err_Hnd
Dim strCmdPath As String
strCmdPath = VBA.Environ$("COMSPEC")
VBA.ChDir "C:\Users\" & Environ$("Username") & "\"
VBA.Shell strCmdPath & " /c" & fileCommand, vbNormalFocus
runCmd = True
Exit Function
Err_Hnd:
runCmd = False
End Function
filecommand 是批处理文件的完整路径。当我运行此代码时,出现以下错误
'C:\Users\UserName\Desktop\Move.bat' 不是内部或外部命令、可运行程序或批处理文件。
但是,当我在runCmd = True行上放置一个断点并使用 F8 或 F5 运行代码时,它可以完美运行。不知道为什么会这样。
编辑:在尝试了 ChrisProsser 的代码后,我得到了一个稍微不同的错误。cmd提示符说-
已移动 1 个目录。找不到批处理文件。
它只移动了 1 个文件夹。
不幸的是,这不是逐字记录的,因为我无法再次重新创建此错误并且第一次没有记下该错误。
所以更多信息 - 批处理文件实际上是一个文本文件,其中包含在运行时转换为批处理文件并在执行此函数 runCmd 后返回文本文件的移动代码。因此过程是
- 文本文件到批处理文件
- runCmd 批处理文件
- 批处理文件到文本文件
这会导致错误吗?