【发布时间】:2016-05-26 15:46:36
【问题描述】:
您好,我有一个工作正常的蝙蝠,名为:start.bat 包含:
start C:\Users\*user*\Documents\*path*\hidebat.vbs
一旦手动打开它就可以完美运行,这意味着它会打开 hidebat.vbs,它会打开一个最小化的 .bat,它将文件上传到我的云。因此它得到了验证。
我已经添加了
pause
到 start.bat 看看它做了什么,当我告诉 excel 打开 start.bat 时,它将打开 cmd 并根据需要显示确切的命令,但它不会执行 hidebat.vbs。
我希望当它从 excel 运行时会存在某种路径约束或环境约束,这会阻止它实际超出那个有限的环境。
在 excel 中,我尝试以 3 种不同的方式调用 .bat:
Dim path As String
path = Application.ActiveWorkbook.path
path = path & "\"
Dim MY_FILENAME3 As String
MY_FILENAME3 = path & "start.bat"
1.
retVal = Shell(MY_FILENAME3, vbNormalFocus)
' NOTE THE BATCH FILE WILL RUN, BUT THE CODE WILL CONTINUE TO RUN.
If retVal = 0 Then
MsgBox "An Error Occured"
Close #FileNumber
End
End If
2.
PathCrnt = ActiveWorkbook.path
Call Shell(PathCrnt & "start.bat")
3.
Dim batPath As String: batPath = path
Call Shell(Environ$("COMSPEC") & " /c " & batPath & "start.bat", vbNormalFocus)
是否有人知道它为什么不执行 .bat 文件,或者我可以做些什么来确保它正确运行?
注意。我认为这是因为它打开了默认路径,所以我会告诉它“cd”到保存 excel 的实际路径以及 .bat 文件所在的位置。
【问题讨论】:
标签: vba batch-file vbscript execute