Несколько процессов в tasklist find
Как сделать так что бы tasklist искал сразу несколько процессов например у нас есть условный блокнот я хочу открывать его через cmd но только если не открыт калькулятор или paint или же блокнот уже не запущен
Код:
@echo off
TIMEOUT /T 5
Set process1=paint.exe calc.exe
set process2=notepad.exe
tasklist /FI "ImageName EQ %process2%" | find /I "%process2%"
If %errorlevel% NEQ 1 goto :ex
:first
tasklist /FI "ImageName EQ %process1%" | find /I "%process1%"
If %errorlevel% NEQ 0 goto :first
taskkill /f /im %process2%
:first
tasklist /FI "ImageName EQ %process2%" | find /I "%process2%"
If %errorlevel% NEQ 1 goto :first
:go
tasklist /FI "ImageName EQ %process1%" | find /I "%process1%"
If %errorlevel% NEQ 1 goto :go
start notepad.exe
goto :first
:ex
exit
|
Код:
:: Пропал любой процесс из списка - выполнить команду
@echo off
set "pr1=proc1.exe"
set "pr2=proc2.exe"
cmd /c for /l %%i in () do @for %%p in (%pr1% %pr2%) do @tasklist /fi "imagename eq %%p"^|findstr /v :^|^| (echo Запуск^& exit /b)^&^>nul timeout /t 1 /nobreak
pause
Код:
:: Мониторит открытый калькулятор и блокнот, если пропал калькулятор - закроется и блокнот
@echo off
set "p1=calc.exe"
set "p2=notepad.exe"
cmd /c for /l %%# in () do @tasklist /fi "imagename eq %p1%"^|findstr /v :^|^| (taskkill /f /im "%p2%"^& exit/b)^&^>nul timeout /t 1 /nobreak
pause
|
Я понял, что надо открыть условный "notepad.exe", если не запущены условные ни "notepad.exe" ни "calc.exe" ни "mspaint.exe".
А что если так:
Код:
tasklist |FindStr /B /I /C:"notepad.exe" /C:"calc.exe" /C:"mspaint.exe" ||Start " " "C:\Windows\System32\notepad.exe"
или втихаря:
Код:
tasklist |>nul FindStr /B /I /C:"notepad.exe" /C:"calc.exe" /C:"mspaint.exe" ||Start " " "C:\Windows\System32\notepad.exe"
Или, если это только часть большого bat-файла, то ИМХО удобнее так:
Код:
@Echo Off
Set PgmRun="C:\Windows\System32\notepad.exe"
Set PgmVeto="notepad.exe" "calc.exe" "mspaint.exe"
Set "Veto= %PgmVeto%"
tasklist |>nul FindStr /B /I %Veto: "= /C:"% ||Start " " %PgmRun%
Exit /B 0
|
Время: 12:42.
© OSzone.net 2001-