【问题标题】:batch file exit /B批处理文件退出 /B
【发布时间】:2015-07-14 17:35:01
【问题描述】:

我只是希望在批处理文件完成后打开一个 cmd.exe 窗口,如下所示。我正在测试使用 cmd.exe 版本 6.1.7601 从 Windows 7 Explorer 启动它。哔声和暂停工作正常,但我想让 cmd 保持打开状态以发出后续命令。

@echo off
:: wschloss Jul 2015
:: This batch runs if the laptop's Core Temp is close to critical
::   as determined by the "Core Temp" utility at
::   "C:\ORION\System Information\CoreTemp\64bit\Core Temp.exe"
:: http://www.alcpu.com/CoreTemp/
:: 
   color 1F :: White on Blue
:: Beeps!
   echo .
   type c:\bill\beep.txt :: causes the Laptop to beep for attention
   cls
::
   echo .
   echo Laptop Critical Temperature Approaches!
   echo .
   echo Save Your Data and Cool me down NOW!
   echo .
   pause
   color
   exit /B
:: EOP

这似乎微不足道,但我显然遗漏了一些东西。感谢您的帮助。

【问题讨论】:

  • 在命令提示符窗口cmd /? 中运行并阅读输出帮助,解释参数/C(关闭)的用法差异,该参数默认用于批处理文件和参数@987654324 的用法@ (keep) 你应该在运行这个批处理文件时使用它。那么exit /B 在您的批处理文件中根本不需要。
  • 仅供参考,COLOR 调用不适用于同一行的“:: White on Blue”

标签: batch-file cmd exit


【解决方案1】:

cmd /k 添加到文件末尾以将程序重定向到命令提示符。 (它会结束你的程序,然后在同一个窗口中,打开命令提示符)

@echo off
:: wschloss Jul 2015
:: This batch runs if the laptop's Core Temp is close to critical
::   as determined by the "Core Temp" utility at
::   "C:\ORION\System Information\CoreTemp\64bit\Core Temp.exe"
:: http://www.alcpu.com/CoreTemp/
:: 
color 1F :: White on Blue
:: Beeps!
echo .
type c:\bill\beep.txt :: causes the Laptop to beep for attention
cls
::
echo .
echo Laptop Critical Temperature Approaches!
echo .
echo Save Your Data and Cool me down NOW!
echo .
pause
color
cmd /k
:: EOP

如果你想清除之前的输出,当然可以在cmd /k 之前添加cls

【讨论】:

  • 谢谢UnknownOctopus,现在很清楚了。 MOFI 也是正确的,但直到你澄清我才明白。顺便说一句,对于那些阅读本文的人;该解决方案保留了批处理中的环境设置,这很好,并且我正在寻找什么,尽管我没有明确说明。谢谢大家!
  • 这可行,但是,批处理脚本在子 CMD 进程关闭之前不会终止,并且您的一个窗口有两个 CMD 进程同时运行。请参阅my answer 了解让脚本关闭并在最后只运行一个 CMD 进程的简单方法。
【解决方案2】:

使用cmd /k yourbatchfile.bat 命令行,然后exit /b 将按您的意愿工作。

【讨论】:

  • 你能澄清一下吗?我将它用于几个不同的批次,根据我在做什么,我从 Win Explorer 启动,有时我在启动前在记事本中即时编辑它们,但我总是希望生成的 cmd 窗口“坚持”。如果我必须创建快捷方式,那就达不到目的了。我只是以上面的批处理为例,尽管它是从应用程序调用的,所以你的解决方案在这种情况下不起作用。请参阅批次开始时的 cmets。谢谢。
【解决方案3】:

通常我先打开一个命令窗口,然后从那里运行我的批处理脚本,所以脚本结束时我的窗口不会关闭。

如果我希望能够双击脚本并让它运行并且窗口保持打开状态,那么我创建一个运行 cmd /k "myscript.bat" 的快捷方式。

但听起来你不想做上述任何一个。您可以使用 START /B 在同一窗口中使用 /K 选项启动新的 CMD shell。当脚本完成时,您的父 CMD shell 将终止,但子 CMD shell 将保留,因此窗口将保持打开状态。

@echo off
:: wschloss Jul 2015
:: This batch runs if the laptop's Core Temp is close to critical
::   as determined by the "Core Temp" utility at
::   "C:\ORION\System Information\CoreTemp\64bit\Core Temp.exe"
:: http://www.alcpu.com/CoreTemp/
:: 
   color 1F :: White on Blue
:: Beeps!
   echo .
   type c:\bill\beep.txt :: causes the Laptop to beep for attention
   cls
::
   echo .
   echo Laptop Critical Temperature Approaches!
   echo .
   echo Save Your Data and Cool me down NOW!
   echo .
   pause
   color
   start /b cmd /k
   exit /B
:: EOP

【讨论】:

    猜你喜欢
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多