Windows批处理脚本启动程序和退出控制台

我有一个批处理脚本,用于启动程序,如notepad.exe 。 当我双击这个batch file时,记事本正常启动,但启动notepad.execmd的黑色窗口仍保留在后台。 为了启动notepad.exe并使cmd窗口消失,我需要做些什么?

编辑 :比使用\I更复杂。

cmd调用cygwincygwin开始notepad 。 我用

start \I \path\cygwin\bin\bash.exe

和第一个窗口(cmd)消失,但第二个窗口(\ cygwin \ bin \ bash.exe)仍然在背景上。 在cygwin脚本中,我使用notepad.exe &然后退出。

 start "" "%SystemRoot%\Notepad.exe" 

保持开始和您的应用程序path之间的""


新增说明:

通常当我们从下面的batch file启动一个程序时,就像OP说的那样,我们在后台会有黑色的窗口。

 %SystemRoot%\Notepad.exe 

这是记事本在相同的命令提示符(进程)中运行的原因。 命令提示符将closures记事本后closures。 为了避免这种情况,我们可以使用start命令来启动一个单独的进程。

 start %SystemRoot%\Notepad.exe 

只要path中没有空格,这个命令就可以了。 为了防万一,我们添加了"引号"

 start "%SystemRoot%\Notepad.exe" 

但是运行这个命令只会启动另一个空白的命令提示符。 为什么? 如果你查找start /?start命令将会识别"作为它将要启动的新命令提示符的标题之间的参数" 。所以,为了解决这个问题,我们有这样的命令:

 start "" "%SystemRoot%\Notepad.exe" 

""的第一个参数是设置标题(我们设置为空),第二个参数"%SystemRoot%\Notepad.exe"是要运行的目标命令(支持path中的空格)。

如果你需要给命令添加参数,只需将它们附加引号,即:

 start "" "%SystemRoot%\Notepad.exe" "<filename>" 

使用start notepad.exe

更多信息start /?

%ComSpec% /c %systemroot%\notepad.exe

最简单的方法就是开始启动它

 start notepad.exe 

在这里你可以find更多关于start信息

嗯…我这样做我的batch file之一,而不使用CALL或START:

 %SystemRoot%\notepad.exe ..\%URI% GOTO ENDF 

我没有安装Cygwin,而我在Windows XP上。

尝试启动path\to\cygwin\bin\bash.exe