Как запустить команду wmic в пакетном файле

Я запускаю пару команд wmic в файле btach, чтобы найти процесс и убить его.

wmic Path win32_process Где завершение вызова «CommandLine Like '%app1%'»

wmic Path win32_process Где вызов «CommandLine Like '%app2%'» завершается

Эти команды работают нормально, когда я запускаю из консоли по отдельности, но когда я запускаю их с помощью пакетного файла, я получаю сообщение об ошибке, как показано ниже:

wmic Path win32_process Где завершение вызова «CommandLine Like ''»

Нет доступных экземпляров.

Может ли кто-нибудь указать, в чем проблема с командой, если она запускается из пакетного файла.


person Bankelaal    schedule 26.11.2014    source источник


Ответы (1)


Внутри пакетного файла знаки процента должны быть экранированы. Команда, которую вы пытаетесь выполнить, видит %app1% как переменную, прочитанную и замененную (возможно) пустой строкой.

Вам нужно использовать

wmic Path win32_process Where "CommandLine Like '%%app1%%'" Call Terminate

Обратите внимание, что это условие также будет соответствовать текущему экземпляру wmic, поскольку условие поиска также включено в собственную командную строку. Вы должны добавить дополнительный тест, чтобы гарантировать завершение только желаемого процесса.

person MC ND    schedule 26.11.2014