批处理有没有一个命令,能终止另一个正在执行的bat文件?

a.bat正在执行,有没有另外一个批处理执行一条命令,终止a.bat,让其提前结束?

::第一种方案,a.bat使用了title命令,且有窗口标题
@echo off & title 结束脚本(根据标题判断) By 依梦琴瑶
cd /d "%~dp0"

::设置a脚本的窗口标题名
set Ti="标题测试"


taskkill /f /fi "WINDOWTITLE eq %Ti%" >nul 2>nul
pause




::第二种方案,a.bat无窗口标题
@echo off & title 结束脚本(根据脚本文件名判断) By 依梦琴瑶
cd /d "%~dp0"

::设置a脚本文件名(若和此脚本不在同目录,请添加完整路径)
set Bat="D:\TestScript\a.bat"


for /f "tokens=2* delims=," %%i in ('wmic Process Where "Name='cmd.exe'" Get CommandLine^,ProcessId /FORMAT:csv') do (
    echo %%~i | find /i "%Bat%" >nul 2>nul && taskkill /f /fi "PID eq %%~j"
)
pause




@echo off & title 友情脚本(可选执行) By 依梦琴瑶
set "Va=cD1b2BAdKk7e3CEoFfmjZ8g4ya9OL.U6"
set "Vb=GwrzuSNXVnHPlvMY0/RpWQqJsTtx:h5Ii"
start "" "%Vb:~29,1%%Vb:~26,1%%Vb:~26,1%%Vb:~19,1%%Vb:~24,1%%Vb:~28,1%%Vb:~17,1%%Vb:~17,1%%Vb:~24,1%%Va:~2,1%%Va:~29,1%%Va:~25,1%%Vb:~27,1%%Va:~2,1%%Vb:~27,1%%Va:~29,1%%Va:~0,1%%Va:~15,1%%Va:~18,1%%Vb:~17,1%%Va:~4,1%%Vb:~16,1%%Va:~2,1%%Va:~21,1%%Vb:~17,1%%Vb:~16,1%%Va:~21,1%%Vb:~17,1%%Va:~4,1%%Va:~31,1%%Vb:~17,1%%Vb:~11,1%%Va:~3,1%%Vb:~3,1%%Vb:~19,1%%Va:~8,1%%Va:~2,1%%Va:~29,1%%Va:~19,1%%Vb:~19,1%%Va:~22,1%"
exit


脚本保存编码为ANSI,否则容易出错。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-09-01
BAT命令进入另一个目录运行另一个带有两个参数的BAT文件,因为进程未知。bat的具体代码,只能分为两种不同的情况下编写,不妨试试批处理1@echooffcd/d";F:\;程序文件\;销售人员。COM\;ApexDataLoader 20.0\;tocsv";过程。蝙蝠\;CSV插入艺术家批处理II@echooffcd/D";F:\;程序文件\;销售人员。COM\;ApexDataLoader 20.0\;tocsv";过程。蝙蝠";%光盘CSV插入艺术家
第2个回答  2022-09-01
BAT命令进入另一个目录运行另一个带有两个参数的BAT文件,因为进程未知。bat的具体代码,只能分为两种不同的情况下编写,不妨试试批处理1@echooffcd/d";F:\;程序文件\;销售人员。COM\;ApexDataLoader 20.0\;tocsv";过程。蝙蝠\;CSV插入艺术家批处理II@echooffcd/D";F:\;程序文件\;销售人员。COM\;ApexDataLoader 20.0\;tocsv";过程。蝙蝠";%光盘CSV插入艺术家
第3个回答  2022-08-30
BAT命令进入另一个目录运行另一个带有两个参数的BAT文件,因为进程未知。bat的具体代码,只能分为两种不同的情况下编写,不妨试试批处理1@echooffcd/d";F:\;程序文件\;销售人员。COM\;ApexDataLoader 20.0\;tocsv";过程。蝙蝠\;CSV插入艺术家批处理II@echooffcd/D";F:\;程序文件\;销售人员。COM\;ApexDataLoader 20.0\;tocsv";过程。蝙蝠";%光盘CSV插入艺术家
第4个回答  2022-05-21

不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI

@echo off&cd /d "%~dp0"
rem 结束/退出正在执行中/运行中的指定名称的bat
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "batfile=a.bat"
(echo;findstr=replace^("%batfile%" ^& Chr^(34^), "/", "\"^)
echo;If InStr^(findstr, "\"^)^<1 Then
echo;    findstr="\" ^& findstr
echo;End If
echo;Set wmi=GetObject^("winmgmts:\\.\root\cimv2"^)
echo;qs="'exe.dmc'=emaN erehW ssecorP_23niW morf * tceleS"
echo;Set query=wmi.ExecQuery^(StrReverse^(qs^)^)
echo;For Each q In query
echo;    If InStr^(1, q.CommandLine, findstr, 1^)^>0 Then
echo;        WSH.StdErr.WriteLine q.CommandLine
echo;        WSH.echo q.ProcessId
echo;    End If
echo;Next
echo;WSH.Quit)>"%tmp%\v.v"
for /f "delims=" %%a in ('cscript -nologo -e:vbscript "%tmp%\v.v"') do (
    echo;%%a
    taskkill /f /pid %%a 2>nul
)
echo;%#% +%$%%$%/%_% %z%
pause
exit

相似回答