我做了一个批处理文件:
echo set shell = createobject^("wscript.shell"^) : wscript.sleep^(1000^) : shell.sendkeys^("blablabla"^) : Shell.SendKeys "{Enter}" : wscript.sleep^(1000^) >"c:\folder\blabla.vbs"
start "c:\folder\blabla.vbs"但是当我打开批处理文件时,似乎CMD启动了,但是VBS文件没有启动,但是当我手动打开VBS文件时,它就正常工作了。那么问题在哪里呢?VBS是手动工作的,但是批处理命令没有启动VBS。请自己试试看。
发布于 2013-10-19 21:42:30
这件事没有开始就奏效了。;;)
如果您所需要的只是运行vbs,那么只需使用"c:\folder\blabla.vbs"而不是start,或者如果需要使用start,则使用start "" "c:\folder\blabla.vbs"。
发布于 2013-10-19 21:39:23
如果您确实需要启动,请查看它的文档:
start /?
Starts a separate window to run a specified program or command.
===============
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program]
[parameters]
"title" Title to display in window title bar.
path Starting directory
B Start application without creating a new window. The
=== =============================
application has ^C handling ignored. Unless the application
enables ^C processing, ^Break is the only way to interrupt
the application..。
整个繁文缛节如何与Sendkey互动还有待观察。
发布于 2013-10-19 22:08:33
当使用start命令时,命令行上有引号,第一组引号是窗口标题。
start "" "c:\folder\blabla.vbs"作为最后一条命令,睡一秒钟有什么意义?
你的剧本不可靠。在发送键之前使用AppActivate是个好主意,以确保它进入了正确的窗口。使用AppActivate将允许您摆脱第一个睡眠命令。
If WSHShell.AppActivate("Calculator")=False then
WshShell.Run "C:\windows\System32\calc.exe", 1, false
End If对于大多数应用程序,不需要执行多个子键(网页除外)。
https://stackoverflow.com/questions/19471376
复制相似问题