首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Windows批处理脚本启动程序和退出控制台

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

Stack Overflow用户
提问于 2011-05-06 16:52:50
回答 6查看 171.5K关注 0票数 100

我有一个用来启动程序的批处理脚本,比如notepad.exe。当我双击这个批处理文件时,记事本正常启动,但启动notepad.execmd的黑色窗口仍然保留在后台。我必须做什么才能启动notepad.exe并使cmd窗口消失?

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

cmd调用cygwincygwin启动notepad。我使用

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

并且第一窗口(cmd)消失,但是第二窗口(\cygwin\bin\bash.exe)仍然在背景上。在cygwin脚本中,我使用了notepad.exe &,然后使用exit。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-10-12 04:50:23

代码语言:javascript
复制
start "" "%SystemRoot%\Notepad.exe"

""放在start和应用程序路径之间。

补充说明:

通常,当我们从像下面这样的批处理文件启动一个程序时,我们会像OP所说的那样在后台看到黑色的窗口。

代码语言:javascript
复制
%SystemRoot%\Notepad.exe

这是由于记事本在同一命令提示符(进程)中运行造成的。关闭记事本后,命令提示符将关闭。为了避免这种情况,我们可以使用start命令启动一个单独的进程,如下所示。

代码语言:javascript
复制
start %SystemRoot%\Notepad.exe

只要路径中没有空格,这个命令就没问题。为了处理路径中的空格以防万一,我们像这样添加了"引号。

代码语言:javascript
复制
start "%SystemRoot%\Notepad.exe"

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

代码语言:javascript
复制
start "" "%SystemRoot%\Notepad.exe"

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

如果需要在命令中添加参数,只需添加引号即可,即:

代码语言:javascript
复制
start "" "%SystemRoot%\Notepad.exe" "<filename>" 
票数 228
EN

Stack Overflow用户

发布于 2011-05-06 16:54:03

使用start notepad.exe

更多关于start /?的信息。

票数 10
EN

Stack Overflow用户

发布于 2014-07-04 17:48:05

最简单的方法就是从start开始

代码语言:javascript
复制
start notepad.exe

Here您可以找到有关start的更多信息

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5909012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档