2011-01-14 18:23:22 +0000 2011-01-14 18:23:22 +0000
59
59

如何创建一个Windows Batch文件,执行时不显示命令行提示符?

我安装了一个叫Redcar的Ruby gem,从命令行启动。当它运行时,它会窃取shell直到终止,所以我必须创建一个新的shell窗口来继续进行命令行工作。我使用的shell是MySysGit中的GITBash shell。

我发现了一个Redcar.bat文件,我想,这个文件是用来启动Redcar的快捷方式,但我不希望每次启动BAT文件时,额外的命令提示符窗口都会打开。

答案 (11)

38
38
38
2011-01-21 18:41:45 +0000

你不能—-用内置的命令提示符执行一个批处理文件,在批处理文件退出之前,窗口会一直打开。如果有可能的话,修改批处理文件,用start命令运行任何程序。默认情况下,start会立即返回,而不等待程序退出,所以批处理文件会继续运行,并且可能会立即退出。

的一个注意事项是,如果你运行的是一个控制台模式的程序,很多脚本解释器都是这样,那么批处理文件会等待程序退出,而使用start会产生一个新的控制台窗口。在这种情况下,你需要做的是运行基于 Windows 的解释器版本,而不是基于控制台模式的解释器 — 无需使用 start。对于 Perl,你需要运行 wperl.exe 而不是 perl.exe。对于Python,则需要运行pythonw.exe而不是python.exe。我下载的旧的win32 Ruby发行版有rubyw.exe,应该也是这样的。我听说过这种东西,但从来没有用过,所以我不知道有什么特别的东西可以指点你。

22
22
22
2014-01-15 06:25:25 +0000

我想这是最简单、最短的解决方法,在运行批处理文件的时候不需要打开DOS窗口,当你想安排一组命令周期性的运行时,会让人很烦心,所以DOS窗口不断的弹出,下面是你的解决方法。用VB脚本调用批处理文件…..

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

将上面的几行复制到编辑器中,保存为.VBS扩展名的文件。相应地编辑.BAT文件的名称和路径。然后只需运行.vbs文件,神奇的事情就会发生!

8
8
8
2013-01-02 05:37:05 +0000

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

从外面看,它将带出cmd控制台窗口,但为了避免这种情况,你可以创建一个快捷文件,将属性修改为开始最小化

5
5
5
2016-09-11 08:06:00 +0000

要做到这一点,使用程序BAT To Exe Converter将你的批处理文件转换成可执行文件。因此,当你运行它时,它将在没有窗口的情况下运行。

4
4
4
2012-12-18 07:07:00 +0000

延续Dennis Williamson的回答,你可以编辑批处理文件,并将START /B附加在你正在执行的命令中。

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

@ECHO OFF START /B putty.exe -load _name\_of\_my\_config\_file_

它的工作原理是这样的: &001

它的工作原理是完美的。

4
4
4
2011-01-14 19:32:24 +0000

试试这个:

START /B batchfile

**注由barlop添加*

start /? 说的是/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.
3
3
3
2015-04-25 09:00:42 +0000

你可以使用 RunHiddenConsole

hideExec.bat

@echo off
RunHiddenConsole batch.bat
3
3
3
2011-01-21 18:20:43 +0000

我不清楚你的问题,但我的一些批处理文件,我使用的是一个 “dumy",它的唯一目的是启动主批处理文件。

所以GO.BAT会有:

cmd /c go2.bat %1 %2 %3
exit

退出关闭命令提示符窗口,否则会保持打开。

0
0
0
2013-03-04 00:36:09 +0000

把/b开关放在路径前面就可以了。它不会打开第二个命令提示符。

0
0
0
2014-10-18 16:43:48 +0000

由Indago 提供的回答】(https://superuser.com/a/701867/141909)到目前为止,对我来说是最好的解决方案。VBS文件让我可以通过脚本运行批处理的功能,防止了CMD窗口的出现。有几个注意事项:

1.如果你的批处理需要管理员权限,请创建或使用一个现有的批处理,调用VBS并以管理员身份运行该批处理。

  1. 如果没有可视性,你很难辨别你要做的事情是否真的按照你想要的方式运行。
0
0
0
2016-05-20 07:11:31 +0000

我过去用过cmdow,似乎能满足我的要求。

你可能会想使用以下选项之一:CMDOW [window] /HID

/HID 隐藏指定的窗口

CMDOW [window] /END 关闭指定的窗口

/END 礼貌地要求窗口关闭(有些窗口可能会打开一个对话框)

希望这对你有帮助。