Я не могу вызвать процесс летучей мыши внутри другой летучей мыши.
Это ситуация.
У меня есть 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?