2016-05-20 2 views
0

Я использую команду wmic, чтобы получить команду Line для конкретного процесса, если он запущен. Сценарий заключается в том, чтобы вернуть командную строку, если процесс выполняется иначе. Я хочу перенаправить вывод в NUL. В моем случае, если процесс работает, я хорошо разбираюсь в этом фрагменте кода, но если процесс не запущен (нет экземпляра нереста java.exe), я получаю что-то подобное в консоли «Нет экземпляров». Как избежать выхода этой консоли, если java.exe не запущен. Ниже приводится часть кода:перенаправление вывода команды wmic на NUL

for /f "skip=1 tokens=7" %%f in ('wmic process where "name='java.exe'" get commandLine') do (
set v=%%f 
goto function 
) 

ответ

0

Вы можете попробовать это:

for /f "skip=1 tokens=7" %%f in ('wmic process where "name='java.exe'" get commandLine 2^>nul') do (
set v=%%f 
goto function 
) 

Это возвращает все выходные ошибки программы в NUL, в то же время давая нормальный выход обратно. Обратите внимание, что вам нужно избежать > с ^, потому что это особый символ.

Это работает, потому что, как вы, вероятно, заметили, >nul перенаправляет нормальный выход, но 2>nul перенаправляет только выход ошибки.

+0

Perfect !! Я перенаправлял вывод в NUL и, таким образом, для положительных сценариев, я тоже не получал нормальный выход. Благодаря тонну!! :) –

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