2010-05-20 3 views
1

Я хочу использовать команду «wmic» для определения того, работает ли какой-либо конкретный Java-процесс.WMCI - как получить ERRORLEVEL

Например> WMIC процесс, где «CommandLine как„% ACTMonitor%“и ExecutablePath как„% РАТН1%“и имя, как„% Java%“»

Проблема теперь, что Равен этой команды всегда 0, независимо от того, есть ли перечисленный процесс или нет. Как я могу получить errorlevel! = 0, если процесс больше не работает? Или может кто-нибудь из вас рассказать мне другое предложение о том, как можно продолжить в сценарии .bat с этой информацией ...

Заранее спасибо!

ответ

2

В общем, в пакетном файле можно использовать команду FIND, чтобы проверить ли вы получить конкретный выход из команды:

>ECHO This is correct | FIND "correct" > NUL 
>ECHO %ERRORLEVEL% 
0 
>ECHO This is bad | FIND "correct" > NUL 
1 

ли это помощь?

+0

Привет, спасибо за этот быстрый ответ. Да, вы правы, я сделал то же самое в своем сценарии, но потом выяснил, что в команде wmic (с использованием как ...) можно сделать ограничения, и это кажется мне более понятным. Таким образом, нет решения, чтобы сделать это по-другому, только как предложено: wmic process get executablePath, commandLine | найти/i "java" | find/i "% ACTMonitor%" | find/i "% PATH1%"> NUL ?? – murxx

+0

Кажется, что, насколько я могу судить, я бы не использовал команду 'wmic', которую вы предложили в вопросе, но используйте« find »в результате этого, поэтому вместо того, чтобы сделайте 3 команды 'find', вы просто получите один' wmic' и один 'find'. Это имеет то преимущество, что 'wmic' не заканчивает вывод информации о каждом отдельном процессе, так что' find' может отфильтровать его - пусть 'wmic' выполняет фильтрацию, просто используйте' find', чтобы преобразовать это в yes/нет в конце ... – psmears

+0

Хорошо, я сделаю это. Еще один вопрос: есть ли способ объединения «и» в один? Как и в настоящий момент у меня есть эти три трубы в серии и хотелось бы, чтобы одна из них говорила «найти» java и% ACTMonitor% и% PATH% »? – murxx

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