由于尚未确定的原因,start /b中的/b开关导致taskkill无法找到第一个实例:
INFO: No tasks running with the specified criteria
这是相关代码的一个简单示例(有/b并且不起作用)。复制代码并粘贴到记事本中并保存为批处理文件。它将使用 cmd 开关“/k”重新启动,然后它将创建第二个实例,然后第二个实例将尝试结束第一个实例。如果需要,可以在此处找到原始脚本。
@prompt :
%zero%@set zero=::&start /b "" "cmd" /k "%~dpnx0"&goto :eof
%first%@TITLE First Instance
%first%@set first=::&start "" cmd /C "%~dpnx0"&goto :waiting
taskkill /F /FI "WINDOWTITLE eq First Instance"
taskkill /F /FI "WINDOWTITLE eq Administrator: First Instance"
:waiting
pause>nul
这是没有/b开关的相同示例。这是两者之间的唯一区别。它可以正常工作:
@prompt :
%zero%@set zero=::&start "" "cmd" /k "%~dpnx0"&goto :eof
%first%@TITLE First Instance
%first%@set first=::&start "" cmd /C "%~dpnx0"&goto :waiting
taskkill /F /FI "WINDOWTITLE eq First Instance"
taskkill /F /FI "WINDOWTITLE eq Administrator: First Instance"
:waiting
pause>nul
重申我的问题:如何让 taskkill 与 start 的/b开关一起工作?解释为什么它不能按原样工作也很好。