我想使用VBScript执行批处理文件。当我使用此代码时,cmd.exe确实会运行,但只会运行一小段时间,并且批处理文件不会得到执行。
test.vbs:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Exec "test.bat"
但是当我运行此脚本时,它说它找不到指定的文件(错误80070002)。批处理文件在cmd.exe中工作正常。我尝试将echo hello放入批处理文件的脚本中,但没有任何效果!我已经将.vbs和.bat文件放在相同的目录中。 .bat文件仅输出一些字符串,使用超时命令并ping通IP地址
如何执行批处理文件?
答案 0 :(得分:0)
我认为您应该工作正常。
重要问题:
a。 .bat文件中到底是什么?也许它所做的事情在ShellExec / Shell.run中不起作用?
b。您究竟如何开始VBS脚本?也许它甚至找不到test.bat文件?例如,.vbs可能在错误的工作目录中执行?
c。您是否从.bat文件中调用另一个.bat文件?如果是这样,请始终使用“呼叫”。示例:“致电mysecondbat.bat”。
d。 .bat文件的路径或文件名中是否有空格?如果是这样,您将需要“三倍空格”。示例:shell.run“”“ F:\ My Server \ My Path \ Test.bat”“”建议:
a。创建一个执行简单操作的“ test.bat”(例如“ echo Hello”)
b。从命令提示符处运行.bat文件-确认没有问题。
c。然后从同一命令提示符下运行.vbs,并验证.bat文件是否仍可以正常运行。
示例:
testvbs.vbs:
dim shell
set shell=createobject("wscript.shell")
shell.run "test.bat"
set shell=nothing
testbat.bat:
echo I'm in testbat.bat!
@PING localhost -n 6 >NUL
在命令提示符下,键入“ testvbs.vbs”。应该会出现一个窗口,说“我在testbat.bat!”,然后在5秒钟左右后消失。
与您的.vbs文件进行比较。用发现的内容更新您的帖子。