如何创建在执行时不显示命令提示符的 Windows 批处理文件?

Jak*_*ake 65 windows batch command-line

我安装了一个名为 Redcar 的 ruby​​ gem,它是从命令行启动的。当它运行时,它会窃取 shell 直到它终止,所以我必须创建一个新的 shell 窗口来继续执行命令行工作。我使用的 shell 是来自 MySysGit 的 GITbash shell。

我发现了一个 Redcar.bat 文件,我想它是为了将 Redcar 作为快捷方式启动,但我不希望在启动 BAT 文件时打开额外的命令提示符窗口。

如何在没有看到提示的情况下只运行 BAT?

afr*_*ier 39

你不能——用内置的命令提示符执行批处理文件会保持一个窗口打开,直到批处理文件退出。

可以采取措施确保批处理文件尽快退出。如果可能,请修改批处理文件以使用该start命令运行任何程序。默认情况下,start不等待程序退出就立即返回,因此批处理文件将继续运行,并且可能会立即退出。再加上修改您的快捷方式以运行最小化的批处理文件,您只会看到任务栏闪烁,甚至不会在屏幕上看到窗口。

对此的一个警告是,如果您正在运行一个控制台模式程序,许多脚本解释器都是这样,批处理文件将等待程序退出,而 usingstart将产生一个新的控制台窗口。在这种情况下,您需要做的是运行基于 Windows 的解释器版本,而不是基于控制台的版本——没有start必要。对于 Perl,您将运行wperl.exe而不是perl.exe. 对于 Python,它pythonw.exe不是python.exe. 我下载的旧的 win32 Ruby 发行版有rubyw.exe,它应该做同样的事情。

最后一种可能性是使用第 3 方工具运行带有隐藏窗口的命令提示符。我听说过这样的东西,但从来没有用过它们,所以我不知道有什么特别要指出的。


ind*_*ago 25

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

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 文件名和路径。然后只需运行 .vbs 文件,奇迹就会发生!

您可以在 Task Scheduler 上创建一个任务,然后在Action应该Start a program选择.vbs您创建的这个脚本。根据您的要求,您可以填写和保存其他属性。


vha*_*nla 10

您可以在命令提示符下使用 START /MIN CMD.EXE /C mybatchfile.bat 运行另一个批处理文件。

从外部,它会显示 cmd 控制台窗口,但为了避免这种情况,您可以创建一个快捷方式文件,其属性已修改为开始最小化

  • 在 Windows 8.1 中,此选项位于属性 -> 快捷方式选项卡 -> 运行:-> 最小化(默认为“普通窗口”) (2认同)

Den*_*son 6

尝试一下:

START /B batchfile
Run Code Online (Sandbox Code Playgroud)

巴洛普添加的注释

开始 /?/B 说

 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.
Run Code Online (Sandbox Code Playgroud)

  • 如果我打开命令提示符,这可能会起作用,但是当我使用 .bat 时,我会双击它或桌面上它的快捷方式。我试图避免需要命令提示符来启动该程序。 (3认同)

小智 5

继续丹尼斯威廉姆森的回答,您可以编辑批处理文件并附加(前置)START /B到您正在执行的命令。

例如,我有一个运行 putty 的批处理文件并且有同样的问题(额外的 CMD),所以我是这样写的:

@ECHO 关闭
开始 /B putty.exe -load name_of_my_config_file

它工作得很好。


Don*_*... 5

为此,请使用Bat To Exe Converter程序将批处理文件转换为可执行文件。

转换为可执行文件时,您会在可见性部分找到将文件作为隐形应用程序运行的选项。因此,当您运行它时,它将在没有窗口的情况下运行。

蝙蝠到exe


归档时间:

查看次数:

311577 次

最近记录:

5 年 前