繁体   English   中英

如何在批处理文件中关闭cmd

[英]How to close cmd in batch file

start cmd /k 

/k:是强制执行的。

可以按如下方式启动许多命令提示。

start cmd /k Call rc_hub.bat 4444

start cmd /k Call rc_grid1.bat 5555

start cmd /k Call rc_grid1.bat 6666

start cmd /k Call rc_grid1.bat 5570.

我想知道启动后关闭用什么cmd

例如: if %a="1234" start cmd /k Call rc_grid1.bat --> 这是打开 cmd ,需要关闭什么 cmd ?

关闭 cmd 的多个实例并不是一项非常罕见的任务。 例如,在调试一些复杂的批处理脚本时可能会出现这种情况。

有一种方法可以做到这一点:
首先,给 cmd windows 唯一的标题。 例如,

start "unique_title" cmd.exe /k ...

其次,当您想关闭它们时,从与标题匹配的任务列表输出中获取进程 ID。 然后用taskkill杀死那些 id。

tasklist /v /fo csv | findstr "unique_title"

这是完整示例,第一个参数是要匹配的标题子字符串:

kill_title.cmd

@echo off
set TITLE=unique_title
if not "%~1"=="" set "TITLE=%~1"
for /f "tokens=1,2,* delims=," %%a in ('tasklist /fi "imagename eq cmd.exe" /v /fo csv ^| findstr "%TITLE%"') do (
    rem here we check that the first column is "cmd.exe" ... just in case
    if "%%~a"=="cmd.exe" echo taskkill /pid "%%~b"
)

首先检查脚本输出,如果没问题,去掉taskkill之前的echo

弄乱命令提示符时,当命令提示符真的失控时,我的计算机一直崩溃。 我制作了另一个命令提示符,如下所示:

Title END
:End
taskkill /FI "WINDOWTITLE ne END" /IM cmd.exe /F /T
Goto :End

这将强制关闭所有正在运行的命令提示符,不包括这个命令提示符,并将重复该命令直到您关闭它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM