невозможно найти .bat PID для убийства - PullRequest
0 голосов
/ 29 октября 2018

Я не могу вызвать процесс летучей мыши внутри другой летучей мыши. Это ситуация.

У меня есть n1.bat, который в основном содержит:

TITLE "n1.bat"

...
...

start /b /MIN "n2.bat"
...

n2.bat содержит:

TITLE "n2.bat"

...
...

start someother.bat
start another.bat

exit

Теперь я использую третью летучую мышь (n3.bat), которая должна убить все.

TITLE "n3.bat"

...
TASKKILL /F /T /PID n1_PID
...

exit 0

К сожалению, когда n3.bat заканчивается, окно с именем n1.bat - n2.bat остается активным (вывод эха принадлежит n2.bat). Я пытался убить его несколькими способами:

1 - Попытка получить pid процесса из списка задач -> нет процесса с именем n2.bat или аналогичного

TASKLIST /V /NH>Tasks.txt
FOR /F "tokens=2 delims= " %%n2_pid IN ('FINDSTR n2.bat Tasks.txt') DO SET PID=%%n2_pid
TASKKILL /PID %n2_pid%

2- Попытка использовать TASKKILL /F /FI "WINDOWTITLE eq n2.bat" -> процесс не найден

Я пробовал предыдущие решения, также начиная n2.bat с start /min "n2.bat" (поэтому без /b) безуспешно.

Единственный способ убить его - это позвонить

TASKKILL /F /IM cmd.exe

, которого я действительно хотел бы избежать, поскольку он, очевидно, убивает всех открытых cmd.

Какие-нибудь идеи, чтобы восстановить виновного pid?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...