以静默方式运行CMD或BAT

Tam*_*eri 41 scripting cmd batch-file

如何以静默方式运行CMD或.bat文件?我希望阻止向用户显示CMD界面.

Fre*_*ool 39

包括这个短语

@echo off

就在你的蝙蝠脚本的顶部.

  • 稍微改进了一下(格式化,在前面添加了@,以便echo语句本身不会导致输出.)但是,这不会阻止来自被调用命令的输出.在呼叫时将输出重定向到> NUL 2> NUL将会这样做. (8认同)

Von*_*onC 36

我在StackOverflow中提出了一种在后台运行批处理文件的方法(没有显示DOS窗口)

这应该回答你的问题.

这里是:


在第一个脚本中,使用以下行调用第二个脚本:

wscript.exe invis.vbs run.bat %*
Run Code Online (Sandbox Code Playgroud)

实际上,您正在使用以下命令调用vbs脚本:

  • 脚本的[路径] \名称
  • 脚本所需的所有其他参数(%*)

然后,invis.vbs将使用Windows Script Host Run()方法调用您的脚本,该方法采用:

  • intWindowStyle:0表示"隐形窗口"
  • bWaitOnReturn:false表示您的第一个脚本不需要等待第二个脚本完成

请参阅完整的invis.vbs脚本的问题:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
                                                         ^
                             means "invisible window" ---| 
Run Code Online (Sandbox Code Playgroud)

Tammen的反馈后更新:

如果您在DOS会话中并且想要"在后台"启动另一个脚本,那么简单/b(在上述相同问题中详述)就足够了:

您可以使用start /b second.bat从第一个批处理文件异步启动第二个批处理文件,该文件共享您的第一个窗口.


小智 8

http://www.battoexeconverter.com使用Advanced BAT到EXE Con​​verter

这将允许您将批处理文件中的任何其他二进制文件嵌入到一个独立的完全静默的EXE及其免费软件中


ind*_*ago 7

我认为这是在不打开DOS窗口的情况下运行批处理文件的最简单,最简单的解决方案,当您想要安排一组定期运行的命令时,它会非常分散注意力,因此DOS窗口会不断弹出,这是您的解决方案.使用VBS脚本调用批处理文件...

Set WshShell = CreateObject("WScript.Shell" ) 
WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0 
Set WshShell = Nothing 
Run Code Online (Sandbox Code Playgroud)

将上面的行复制到编辑器并使用.VBS扩展名保存文件.相应地编辑.BAT文件名和路径.


小智 6

使用Bat To Exe Converter执行此操作

http://download.cnet.com/Bat-To-Exe-Converter/3000-2069_4-10555897.html
(选择直接下载链接)

1 - 打开Bat to Exe Converter,选择你的Bat文件.
2 - 在Option菜单中选择"Invisible Application",然后按下编译按钮.

完成!