Войти

Показать полную графическую версию : [решено] Работает в cmd.exe но не работает в пакете.


Timurgall
28-09-2012, 12:22
В общем задача такая. Нужно прибивать процесс если он существует. запустил cmd.exe написал так:

for /f %i in ('tasklist') do (if %i==chrome.exe taskkill /F /IM chrome.exe /T)


Код сработал и он убил Хром.
Но когда я завернул это в *.bat он не работает.

http://alnini.ru/for.jpg


Знает кто в чем дело?

Kazun
28-09-2012, 12:35
А зачем использовать for,когда достаточно только:
taskkill /F /IM chrome.exe /T

gora
28-09-2012, 13:30
Знает кто в чем дело? »
В пакетных файлах для команды FOR используется запись %%переменная вместо %переменная.

Timurgall
28-09-2012, 13:34
А зачем использовать for,когда достаточно только:
taskkill /F /IM chrome.exe /T »
Согласен, сейчас так и есть, но хочется с проверкой есть процесс или нет.
Или может кто знает как не VBS проверить существование процесса.

gora
28-09-2012, 13:39
хочется с проверкой есть процесс или нет »
TASKLIST /FI "IMAGENAME eq chrome.exe" | Find "chrome.exe">Nul && TASKKILL /F /IM chrome.exe /T

Timurgall
28-09-2012, 13:56
gora, спасибо. Ваш скрипт намного красивее отрабатывает.




© OSzone.net 2001-2012