bat命令怎么隐藏执行后的所有窗口。不是隐藏cmd的窗口。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat命令怎么隐藏执行后的所有窗口。不是隐藏cmd的窗口。相关的知识,希望对你有一定的参考价值。
执行后它运行就行了;不需要它弹出窗口提示 那样老是要去点关闭
@echo offif "%1" == "yes" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 yes",0)(window.close)&&exit
:begin
::从这里开始运行批处理命令,不会有窗口提示
::工作原理运用vbs的后台运行脚本wscript.shell运行批处理追问
它是要用bat结尾还是vbs的 ??
追答lz,是这样的 。
vbs后台运行的代码
createobject("wscript.shell").run("文件名")相当于新建了一个临时的vbs
mshta vbscript: vbs代码(window.close)除此外 mshta可以调用很多类型的代码,java等,但一般都用不到
这是一个java脚本弹出光驱的代码
new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0).Eject();mshta "javascript:new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0).Eject();window.close();"系统不一定都有jdk
所以mshta临时调用其他代码,跟最后的怎样结束无关系,因为只调用了一次vbs结束后这种代码就不运行了。最后的当然是回归批处理操作平台。
参考技术A 用vbs调用批处理,来隐藏批处理程序.假设 批处理 名为: test.batt.vbs 代码如下:
set ws=wscript.createobject("wscript.shell")
ws.run "test.bat /start",0
双击 t.vbs 隐藏 test.bat 程序追问
那个它的文件所在位置和路径是怎样的 ???
追答同一目录
如何使用 ExecDos 命令隐藏命令提示符窗口
【中文标题】如何使用 ExecDos 命令隐藏命令提示符窗口【英文标题】:How to hide command prompt windows using ExecDos command 【发布时间】:2015-12-11 15:01:42 【问题描述】:我想在我的脚本中执行三个 bat 文件,问题是当我直接使用 execwait
运行这些 .bat
文件时,命令窗口打开,我想隐藏这些命令窗口但它不起作用。我的代码只有 3 行。
ExecDos::exec '"catalina_start.bat"'
ExecDos::exec '"mysql_start.bat"'
ExecDos::exec '"apache_start.bat"'
我也尝试了这个nsExec
命令,但仍然没有解决方案:
nsExec::Exec "cmd /C catalina_start.bat"
nsExec::Exec "cmd /C mysql_start.bat"
nsExec::Exec "cmd /C apache_start.bat"
这些.bat
文件的一点背景,其实这些是xampp setup的文件,xampp内部使用这些文件来启动tomcat、mysql和apache。
我面临的问题是只有第一个 bat 文件被执行,即。 e. tomcat 启动了(我可以在 xampp 控制台中看到),但是脚本没有继续前进,sql 和 apache 没有启动。
【问题讨论】:
编辑标题以便人们知道上下文是 nsis 脚本 正如您在nsExec 的文档中看到的那样,它不显示控制台窗口。因此,要么您的批处理文件生成带有start .....
的新控制台窗口,要么您在 NSIS 安装程序中遇到了错误,在这种情况下您应该联系他们的支持论坛或他们拥有的任何东西。
@Some1Pr0:这就是问题标签的用途。
【参考方案1】:
批处理文件是否包含pause
或其他阻止其完成的内容?
您应该从使用ExecWait '"cmd.exe" /k "$InstDir\catalina_start.bat"'
(或/c
)之类的东西开始,这样您就可以看到写入控制台的文本,包括任何错误。一旦它正常工作,您可以切换到隐藏控制台的 exec 插件之一...
【讨论】:
嗨,我尝试了ExecWait '"cmd.exe" /k "$InstDir\catalina_start.bat"'
用于所有三个 bat 文件,但它不起作用。就像你说的bat文件没有完全执行,第一个命令窗口打开然后直到我手动关闭这个命令窗口第二个bat文件没有运行,但我希望所有三个命令窗口都保持打开状态,我也想最小化它们,我怎样才能做到这一点。请帮忙。
在批处理文件末尾添加“exit”或“cls”。您还必须将 /K 更改为 /C 才能真正关闭窗口...【参考方案2】:
您可以将命令窗口从 cmd /C catalina_start.bat
更改为 start /Min cmd /c catalina_start.bat
它会隐藏命令窗口
【讨论】:
以上是关于bat命令怎么隐藏执行后的所有窗口。不是隐藏cmd的窗口。的主要内容,如果未能解决你的问题,请参考以下文章