Войти

Показать полную графическую версию : Убить процесс, только если он запущен


Страниц : [1] 2

Sisin
19-09-2016, 14:58
После выключения браузера выполняется команда:
/C taskkill /f /t /im USDownloader.exe

Но если USDownloader.exe не запущен, то появляется сообщение. Как сделать, чтобы команда выполнялась, только если USDownloader.exe запущен?
Команда нужна именно для консоли, а не в виде bat или cmd.

sov44
19-09-2016, 15:27
tasklist | find /i "USDownloader.exe" && taskkill /f /im "USDownloader.exe"

Sisin
19-09-2016, 15:42
Чего-то не работает. Запускаю, но ничего не происходит.

Iska
19-09-2016, 16:47
Sisin, тогда рассказывайте, что Вы понимаете под «консолью», и как именно Вы запускаете.

Sisin
19-09-2016, 17:01
Доперло.

/C tasklist | find /i "USDownloader.exe" && taskkill /f /t /im USDownloader.exe

Iska
19-09-2016, 17:58
/C 2>&1 >nul taskkill /f /t /im USDownloader.exe

Sisin
20-09-2016, 10:47
/C 2>&1 >nul taskkill /f /t /im USDownloader.exe »

Красиво!!! :clapping:

PS: Iska, не окажете еще любезность, как очистить папку от всего содержания (в папке есть и файлы, и другие папки), оставив саму папку, командой в одну строку?

Iska
20-09-2016, 11:15
как очистить папку от всего содержания (в папке есть и файлы, и другие папки), оставив саму папку, командой в одну строку? »
Никак. Но можно вызвать такой пакетный файл (http://forum.oszone.net/post-1080597.html#post1080597).

Sisin
20-09-2016, 11:29
Никак. Но можно вызвать такой пакетный файл. »

А нельзя как-нибудь пакетный файл выровнить в одну строку и запустить через командную строку?
Может можно сделать так, чтобы через командную строку создавался bat файл с нужным содержанием, запускался, выполнялся, а потом удалялся???

Iska
20-09-2016, 12:59
Ну. попробуйте как-нибудь так (не проверялось):
/e:on /v:on /c 2>nul pushd "Путь к папке" && 2>nul (rmdir /s /q "Путь к папке" & popd)
Опробуете — отпишитесь.

Sisin
20-09-2016, 13:26
Опробуете — отпишитесь. »

Шикарно!!! А как прописать несколько папок, чтобы не дублировать команду. Пути относительные, без кавычек.

Iska
20-09-2016, 14:57
Боюсь, что никак. Токмо дублировать:
/e:on /v:on /c 2>nul pushd "Путь к папке" && 2>nul (rmdir /s /q "Путь к папке" & popd) & 2>nul pushd "Путь к папке2" && 2>nul (rmdir /s /q "Путь к папке2" & popd)

Sisin
20-09-2016, 15:20
Почему-то по отдельности все работает, а связка не работает. Удаляется только первая папка из связки.

Iska
20-09-2016, 15:57
Не проверялось. Попробую посмотреть на досуге.

Sisin
20-09-2016, 16:15
Пальцем в небо... Вроде работает...


/e:on /v:on /c 2>nul pushd %1 && 2>nul (rmdir /s /q 34 & popd) & (rmdir /s /q 12 & popd)

Iska
20-09-2016, 17:07
Sisin, будет удалено не содержимое папок 34 и 12, а они сами. И что у Вас означает %1 в данном контексте?

Sisin
21-09-2016, 10:29
Sisin, будет удалено не содержимое папок 34 и 12, а они сами. »

Но/e:on /v:on /c 2>nul pushd "Путь к папке" && 2>nul (rmdir /s /q "Путь к папке" & popd)
также удаляет папку...

И что у Вас означает %1 в данном контексте? »
Наверное, все папки в папке...

Iska
21-09-2016, 11:23
Не проверялось. Попробую посмотреть на досуге. »
Проверил. Удаляется первая папка. Связано с хитрой логикой работы командного процессора с кавычками в командной строке. Попробуйте так (пути, естественно, будут Вашими):
/e:on /v:on /c "2>nul pushd "R:\00 01" && 2>nul (rmdir /s /q "R:\00 01" & popd) & 2>nul pushd "R:\00 02" && 2>nul (rmdir /s /q "R:\00 02" & popd) & 2>nul pushd "R:\00 03" && 2>nul (rmdir /s /q "R:\00 03" & popd)"

Sisin
21-09-2016, 12:03
Попробуйте так »

Не работает.

http://savepic.ru/11449960.png

Iska
21-09-2016, 12:31
Sisin, дабы работало непосредственно в командной строке — ручками добавляйте вызов командного процессора "%comspec%" в начале указанного кода (что, надо полагать, самостоятельно делает некое не указанное приложение в:
После выключения браузера выполняется команда:
/C taskkill /f /t /im USDownloader.exe »
).




© OSzone.net 2001-2012