首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMD代替VBS打开。

CMD代替VBS打开。
EN

Stack Overflow用户
提问于 2013-10-19 21:29:45
回答 4查看 271关注 0票数 2

我做了一个批处理文件:

代码语言:javascript
复制
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。请自己试试看。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-19 21:42:30

这件事没有开始就奏效了。;;)

如果您所需要的只是运行vbs,那么只需使用"c:\folder\blabla.vbs"而不是start,或者如果需要使用start,则使用start "" "c:\folder\blabla.vbs"

票数 2
EN

Stack Overflow用户

发布于 2013-10-19 21:39:23

如果您确实需要启动,请查看它的文档:

代码语言:javascript
复制
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互动还有待观察。

票数 1
EN

Stack Overflow用户

发布于 2013-10-19 22:08:33

当使用start命令时,命令行上有引号,第一组引号是窗口标题。

代码语言:javascript
复制
start "" "c:\folder\blabla.vbs"

作为最后一条命令,睡一秒钟有什么意义?

你的剧本不可靠。在发送键之前使用AppActivate是个好主意,以确保它进入了正确的窗口。使用AppActivate将允许您摆脱第一个睡眠命令。

代码语言:javascript
复制
If WSHShell.AppActivate("Calculator")=False then 
    WshShell.Run "C:\windows\System32\calc.exe", 1, false 
End If

对于大多数应用程序,不需要执行多个子键(网页除外)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19471376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档