@masyaka

Как присвоить переменной значение последовательности команд?

Здравствуйте.
tasklist /fi "IMAGENAME eq vlc.exe" | find /c /i "vlc.exe"

Если запустить вышеуказанный код в командной строке, то вывод этого кода будет 2
Вопрос в том как присвоить переменной это значение в батнике или может как то вообще это надо по другому сделать?

Вообще требуется просмотреть список процессов и если процессов vlc.exe больше одного завершить все процессы и запустить vlc снова.
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
wisgest
@wisgest
Не ИТ-специалист
1-й способ) Перенаправить вывод команды в файл и ввести переменную из этого файла:
tasklist /fi "IMAGENAME eq vlc.exe" | find /c /i "vlc.exe">file.tmp
set /p "VAR="<file.tmp
del file.tmp

2-й способ) Обработать в цикле с ключом /f вывод команды:
for /f %%V in ('tasklist /fi "IMAGENAME eq vlc.exe" ^| find /c /i "vlc.exe"') do  set "VAR=%%V"

(При этом не придётся создавать вспомогательный файл, но для выполнения команды будет запускаться дополнительный процесс cmd.exe.)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@NortheR73
системный инженер
Как-то так, если взять PowerShell
$vlc_count = (Get-Process -Name 'vlc').count
If ($vlc_count -gt 2){Stop-Process -Name 'vlc' -Force}
Start-Process vlc.exe
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы