CMD打开,而不是VBS
我做了一个批处理文件:CMD打开,而不是VBS
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。请自行尝试。
这个工作没有开始...; )
如果您只需要运行vbs,那么只需使用"c:\folder\blabla.vbs"
而不是开始,如果需要使用start,则使用start "" "c:\folder\blabla.vbs"
。
如果你真的需要启动,看它的文档:
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交互还有待观察。
好的,那么启动vbs的命令是什么?如果我提出明显的问题,我很抱歉,但我对此很新。谢谢你的回答 –
当使用启动命令并且命令行上有引号时,第一组引号是窗口标题。
start "" "c:\folder\blabla.vbs"
作为最后一个命令睡一秒钟的意义是什么?
您的脚本不健壮。在sendkeys之前使用AppActivate以确保它进入正确的窗口是个好主意。使用AppActivate将允许您摆脱第一个睡眠命令。
If WSHShell.AppActivate("Calculator")=False then
WshShell.Run "C:\windows\System32\calc.exe", 1, false
End If
对于大多数应用程序(网页除外),不需要执行多个sendkeys。
使用start
运行vbs
文件相同运行此:
Wscript.exe "c:\folder\blabla.vbs"
人都有尝试的坏习惯使用Start
命令来运行所有东西的时候真的是不需要的,运行一个文件时使用start
它只是使用Windows ShellExecute
逻辑来搜索默认关联程序......两者都可以工作,但是您最好尝试像我所说的那样运行正确的应用程序而不是start
命令。
nephi12你是什么意思?它的工作没有开始?你能告诉我更多吗? –
我说过了......如果你需要的只是运行vbs,那么只需使用“c:\ folder \ blabla.vbs”,但是如果他想在某个时候恢复控制,启动是明智的选择。 – nephi12