运行批处理文件后如何关闭命令行窗口?

Posted

技术标签:

【中文标题】运行批处理文件后如何关闭命令行窗口?【英文标题】:How to close the command line window after running a batch file? 【发布时间】:2013-01-15 13:51:56 【问题描述】:

我有一个批处理文件。在它完成运行后,即所有命令行都已执行,cmd.exe 窗口保持打开状态。但是,我希望在批处理文件完成其工作后立即关闭它。

到目前为止,我已经尝试在批处理文件中使用exit 命令来关闭 cmd 窗口(我在桌面上也有一个快捷方式),但它似乎不起作用:

tncserver.exe C:\Work -p4 -b57600 -r -cFE -tTNC426B
exit

【问题讨论】:

【参考方案1】:

它应该会自动关闭,如果没有,则表示它卡在第一个命令上。

在您的示例中,它应该自动关闭(没有exit)或使用exit 显式关闭。我认为问题在于您运行的第一个命令没有正确返回。

作为一种解决方法,您可以尝试使用

start "" tncserver.exe C:\Work -p4 -b57600 -r -cFE -tTNC426B

【讨论】:

hohoho,应该是这样的:start tncserver.exe C:\Work -p4 -b57600 -r -cFE -tTNC426B "" 用于停止start 的问题,如果您正在运行的程序有空格,它会将第一个字符串解释为应用程序的标题。 "" 给它一个空白标题,因此其余部分将按预期工作。 只是想在这里做一个补充,我正在运行一个 minecraft 服务器,它在 /restart 命令时会启动 bat 脚本,但是旧的命令提示符不会关闭,而是会回到命令行。在 bat 脚本末尾使用“exit”为我解决了这个问题【参考方案2】:

您的代码绝对没问题。它只需要“exit 0”即可获得更干净的出口。

 tncserver.exe C:\Work -p4 -b57600 -r -cFE -tTNC426B
 exit 0

【讨论】:

【参考方案3】:

我添加了startexit,它们可以工作。没有两者,它就无法工作

start C:/Anaconda3/Library/bin/pyrcc4.exe -py3 path/Resourses.qrc -path/Resourses_rc.py
exit

【讨论】:

【参考方案4】:

如果你只需要自己执行一个命令并且不需要等待,你应该尝试“cmd /c”,这对我有用!

cmd /c start iexplore "http://your/url.html"

cmd /c 表示执行命令然后退出。

您可以通过在命令提示符下键入来了解开关的功能

anycmd /?

【讨论】:

【参考方案5】:

%启动的程序或命令% | taskkill /F /IM cmd.exe

示例:

记事本.exe | taskkill /F /IM cmd.exe

不幸的是,如果您打开了其他 cmd 窗口,它也会杀死它们。

【讨论】:

【参考方案6】:

用这个来启动Xming,把bat文件放在Start->Startup目录下,现在xming在启动时就运行了。

start "" "C:\Program Files (x86)\Xming\Xming.exe" -screen 0 -clipboard -multiwindow

【讨论】:

【参考方案7】:

为了关闭 cmd 窗口,尤其是在使用 Ctrl+C 结束 weblogic 或 JBOSS 应用服务器控制台后,我在批处理文件中使用了“call”命令而不是“start”。我的 startWLS.cmd 文件如下所示:

call [BEA_HOME]\user_projects\domains\test_domain\startWebLogic.cmd

Ctrl+C(和'Y'回答) cmd 窗口自动关闭。

【讨论】:

【参考方案8】:

我在搜索相同主题但针对 Windows 时遇到了这个问题 所以,如果有人想知道如何在这里完成它是它

echo | set /p=Your Text

输出:

Your Text

我用它在剪贴板上保存数据,因此需要修剪文本 看起来像这样

echo | set /p=Text| clip

【讨论】:

【参考方案9】:

Max Lorens 的回答,目前是投票最少的回答,是唯一适用于我的特定脚本的回答。

我相信对于输出并在其中有暂停的复杂脚本,例如“超时 /t 4 /nobreak”,他的想法是最好的。简单地强制杀死 cmd.exe 可以/将弄乱在 cmd.exe 容器内运行后台进程的系统,而该命令只会杀死标题中带有 cmd.exe 的可见窗口。

供参考:

REM EXECUTE TASK KILL TO CLOSE CMD PROGRAM.-
wmic Path win32_process Where "Caption Like 'cmd%.exe'" Call Terminate

将它放在批处理文件程序的最后一行代码中。

【讨论】:

【参考方案10】:
REM EXECUTE TASK KILL TO CLOSE CMD PROGRAM.-
wmic Path win32_process Where "Caption Like 'cmd%.exe'" Call Terminate

PD:将它放在批处理文件程序的最后一个代码行中。-

【讨论】:

以上是关于运行批处理文件后如何关闭命令行窗口?的主要内容,如果未能解决你的问题,请参考以下文章

如何让批处理命令后运行后自动关闭

Windows 批处理文件

双击时如何使Windows批处理文件暂停?

如何使批处理BAT文件在后台运行而不显示DOS窗口

Dos批处理命令bat文件运行完以后自动关闭dos窗口的方法

运行批处理文件怎么不显示DOS命令窗口