【发布时间】:2018-02-22 16:59:16
【问题描述】:
有没有办法在命令行程序结束后关闭命令提示符?
我有一个 Electron 应用程序,我从一个带有以下命令的批处理文件开始:
start npm start
退出 Electron 应用程序后,命令提示符保持打开状态。我尝试将exit 添加到批处理文件的末尾,但这不起作用。
【问题讨论】:
标签: batch-file cmd electron
有没有办法在命令行程序结束后关闭命令提示符?
我有一个 Electron 应用程序,我从一个带有以下命令的批处理文件开始:
start npm start
退出 Electron 应用程序后,命令提示符保持打开状态。我尝试将exit 添加到批处理文件的末尾,但这不起作用。
【问题讨论】:
标签: batch-file cmd electron
我建议在您的批处理文件中实现一些 goto 占位符,以便您的脚本可以遵循明确定义的路径或工作流程。
类似于这里的答案... Batch - If, ElseIf, Else
如果您需要运行从批处理文件启动的命令,您可以在命令完成后使用/C 标志关闭新窗口。
在此处查看此答案... BAT file: Open new cmd window and enter code in there
另外...如果您需要批处理脚本中的多个任务,这是我使用的一个示例,它允许用户输入。包括两个示例,/k 标志允许窗口保持打开状态,/C 标志关闭初始命令提示符。
@echo off
:start
cls
@echo Select An Action:
@echo.
@echo 1= Task 1 (new cmd /C, start npm -l)
@echo 2= Task 2 (new cmd /k, start npm -l)
@echo.
set /p userinp=Enter Your Choice:
set userinp=%userinp:~0,1%
if "%userinp%"=="1" goto 1
if "%userinp%"=="2" goto 2
if "%userinp%"=="3" goto 3
if "%userinp%"=="4" goto 4
if not "%userinp%" =="" @echo Invalid Choice
pause
goto start
:1
start cmd /C start npm -l
@echo Task 2 Complete...
@echo.
@echo Closing in 10 seconds...
timeout /t 10
goto end
:2
start cmd /k start npm -l
@echo Task 2 Complete...
@echo.
@echo Closing in 10 seconds...
timeout /t 10
goto end
:end
exit
【讨论】:
/C 标志会导致此脚本立即关闭并终止正在运行的应用程序。
/k 标志而不是/C 会更好吗?
/k 或/C 终止窗口也会终止应该保持打开的进程。
/k 标志的选项是您所追求的。请参阅我在原文中的编辑,因为我已经包含了两者的示例。第一个选项我可以在 10 秒超时后关闭初始窗口时保持新窗口打开并列出 npm 使用信息。