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

Pos*_*ssa 81 windows cmd batch-file

我有一个用于启动程序的批处理脚本,例如notepad.exe.当我双击这个批处理文件,记事本可以正常启动,但附近的黑色窗口cmd是谁发动notepad.exe仍在后台.为了启动notepad.exe并使cmd窗口消失,我该怎么办?

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

cmd电话cygwin,和cygwin开始notepad.我用

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

并且第一个窗口(cmd)消失,但第二个窗口(\ cygwin\bin\bash.exe)仍然在后台.在我使用的cygwin脚本中notepad.exe &然后退出.

che*_*sum 179

start "" "%SystemRoot%\Notepad.exe"
Run Code Online (Sandbox Code Playgroud)

保持""在开始和应用程序路径之间.


补充说明:

通常,当我们从下面的批处理文件中启动一个程序时,我们将在后台设置黑色窗口,就像OP所说的那样.

%SystemRoot%\Notepad.exe
Run Code Online (Sandbox Code Playgroud)

这是因为记事本在相同的命令提示符(进程)中运行.记事本关闭后,命令提示符将关闭.为避免这种情况,我们可以使用该start命令启动这样的单独进程.

start %SystemRoot%\Notepad.exe
Run Code Online (Sandbox Code Playgroud)

只要路径中没有空间,此命令就可以了.为了处理路径中的空间以防万一,我们添加了"这样的引号.

start "%SystemRoot%\Notepad.exe"
Run Code Online (Sandbox Code Playgroud)

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

start "" "%SystemRoot%\Notepad.exe"
Run Code Online (Sandbox Code Playgroud)

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

如果您需要向命令添加参数,只需附加引用它们,即:

start "" "%SystemRoot%\Notepad.exe" "<filename>" 
Run Code Online (Sandbox Code Playgroud)

  • 注意:当你想以这种方式启动java jar文件时,请确保使用`javaw`可执行文件(不仅仅是`java`,因为`java`将启动另一个批处理窗口):例如`start"""javaw" - jar C:\ JavaProject\myApp.jar` (9认同)
  • 完全没有意义的解决方案。Windows 再次获胜。 (2认同)

Ben*_*oit 9

使用start notepad.exe.

更多信息start /?.

  • 确切地说是哪个论点?`/B`?我读过它,但如果我使用 `start /B notepad.exe` cmd 窗口不会消失。 (2认同)

小智 5

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


bro*_*s28 5

最简单的方法就是启动它 start

start notepad.exe
Run Code Online (Sandbox Code Playgroud)

在这里您可以找到更多相关信息start