bat命令怎么隐藏执行后的所有窗口。不是隐藏cmd的窗口。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat命令怎么隐藏执行后的所有窗口。不是隐藏cmd的窗口。相关的知识,希望对你有一定的参考价值。

执行后它运行就行了;不需要它弹出窗口提示 那样老是要去点关闭

@echo off
if "%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.bat
t.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的窗口。的主要内容,如果未能解决你的问题,请参考以下文章

怎么让BAT隐藏执行,不显示CMD窗口

bat脚本隐藏窗口运行

Win7 运行bat批处理文件时怎么隐藏cmd命令提示符窗口

bat隐藏后怎么呼出

bat隐藏运行 命令是啥

如何让bat,cmd文件后台运行?