2014-01-03 7 views
2

Я использую следующий код, чтобы убить все java-процессы.Как пропустить убийство процесса с помощью taskkill

taskkill /F /IM javaw.exe 
taskkill /F /IM java.exe 
exit 

Это прекрасно работает, когда мне нужно убить все мои процессы Java. Проблема в том, что когда я запускаю его, он также убивает мой процесс затмения. Как я могу пропустить процесс затмения и убить все другие java-процессы.

+2

Вы действительно не можете, так как оба из них используют Java ... (Предположим, вы используете Java также на Eclipse) – thifofdeath

+0

вам нужен какой-то эквивалент '' pgrep' от Unix –

ответ

0

Один из способов сохранить PID процесса затмения, а затем, когда вы Taskkill всех процессов Java, вы исключаете, что PID

адаптированы из Kill only one process with taskkill:

в одном cmd окно:

Start затмение, используя пакетный файл:

start eclipse.exe 
for /f "tokens=2" %%x in ('tasklist ^| findstr java.exe') do set PIDTOSAVE=%%x 

и оканчиваются вы будете использовать

for /f "tokens=2" %%x in ('tasklist ^| findstr java.exe ^| findstr /v %PIDTOSAVE%') do taskkill /F /PID %%x 

Другой способ я нашел, чтобы использовать программу jps, которая поставляется в комплекте с JDK, чтобы найти Java-процессы по имени. См. http://yannickloriot.com/2012/08/kill-a-java-process-from-the-command-line-or-a-bat-file/#sthash.bFaaPUxi.dpbs. Пример использования будет:

for /f "tokens=1" %i in ('jps -m ^| find "YOUR_JAVA_PROCESS_NAME"') do (taskkill /F /PID %i) 

Лучший способ для вас будет зависеть от вашего конкретного использования.

Смежные вопросы