Windows批处理脚本启动程序和退出控制台
我有一个批处理脚本,用于启动程序,如notepad.exe
。 当我双击这个batch file时,记事本正常启动,但启动notepad.exe
的cmd
的黑色窗口仍保留在后台。 为了启动notepad.exe
并使cmd窗口消失,我需要做些什么?
编辑 :比使用\I
更复杂。
cmd
调用cygwin
, cygwin
开始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