我制作了批处理文件:
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。请自行尝试。
答案 0 :(得分:2)
这没有开始...... )
如果您只需要运行vbs,那么只需使用"c:\folder\blabla.vbs"
而不是开头,或者如果您需要使用开头,请使用start "" "c:\folder\blabla.vbs"
。
答案 1 :(得分:1)
如果您确实需要START,请查看其文档:
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
...
整个钻井平台如何与Sendkeys交互还有待观察。
答案 2 :(得分:0)
当使用start命令并且命令行上有引号时,第一组引号是窗口标题。
start "" "c:\folder\blabla.vbs"
作为最后一个命令,一秒睡眠的重点是什么?
您的脚本不健壮。在sendkeys之前使用AppActivate是个好主意,以确保它进入正确的窗口。使用AppActivate将允许您摆脱第一个sleep命令。
If WSHShell.AppActivate("Calculator")=False then
WshShell.Run "C:\windows\System32\calc.exe", 1, false
End If
大多数应用程序都不需要执行多个sendkeys(除了网页)。
答案 3 :(得分:0)
使用start
运行vbs
文件与运行此文件相同:
Wscript.exe "c:\folder\blabla.vbs"
人们养成了使用Start
命令在不需要时运行所有内容的坏习惯,当使用start
运行文件时,它只使用Windows ShellExecute
逻辑进行搜索默认的关联程序...两者都可以工作,但你最好尝试运行正确的应用程序,就像我说的那样,而不是start
命令。