Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вычислить путь из полного пути, и обработать его программой.

Ответить
Настройки темы
CMD/BAT - [решено] Вычислить путь из полного пути, и обработать его программой.

Пользователь


Сообщения: 91
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Добрый вечер, суть в следующем: нужно почистить комп от вирусов, они заражают только exe файлы.
Специальная лечащая утилита от касперского virutkiller.exe ищет во всех файлах, но вири заражают только exe. (Вероятность 99.99%). Утилитка позволяет указать путь к директории, где искать зловредов.
Также есть другая программа Everything. - Позволяет очень быстро искать на NTFS системах, напрямую обращаясь к ней, как к базе данных (кстати, очень хорошая прога - хозяйке на заметку), и найденые файлы можно экспортировать в txt.
Задача: Написать батник, который будет брать все строки из этого файла, выковыривать путь к каталогу из полного пути и запускать virutkiller.exe -p "<path>"

Помогите с батничком, я не йода
(Глядя на то, что тут вытворяют с ненависным\неудобным мне командным языком винды, у меня аж волосы дыбом встают. Низкий поклон всем йодам )

Отправлено: 22:06, 14-07-2011

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


PATRI0T,
Не совсем понял какие пути надо "выковыривать", наверное что-то вроде:
Код: Выделить весь код
@echo off
setlocal

for /f "tokens=*" %%i in ( list.txt ) do virutkiller.exe -p "%%~dpi"

Отправлено: 06:50, 15-07-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


еще вариант - с использованием консольного интерфейса программы (ES):
в отличие от варианта Foreigner, утилита запускается один раз для каждого каталога, а не для каждого EXE-файла
читать дальше »
Код: Выделить весь код
(for /f "delims=" %%a in ('es -s "*.exe"') do @(set "$a=%%~dpa"
 SETLOCAL EnableDelayedExpansion
 if not "!$a!"=="!$b!" virutkiller -y -p "!$a!"
 for /f "delims=" %%x in ("!$a!") do @ENDLOCAL& set "$b=%%~x"
))

Цитата PATRI0T:
Позволяет очень быстро искать на NTFS системах, напрямую обращаясь к ней, как к базе данных »
не так - позволяет быстро искать с СВОЕЙ базе данных, которая создаётся/обновляется посредством предварительного сканирования и оперативного мониторинга локальных NTFS-томов
читать дальше »
Цитата PATRI0T:
кстати, очень хорошая прога - хозяйке на заметку »
неплоха, очевидные плюсы:
- бесплатность;
- скорость;
- портабельность;
- поддержка регулярных выражений;
- возможность подключения к копии программы для сканирования удаленных хостов;
- встроенный HTTP-сервер;
- наличие консольного интерфейса

досадные минусы:
- нельзя запустить как сервис, т.е. требуется активный пользовательский сеанс;
- отсутствует поиск по атрибутам и размеру файла

Последний раз редактировалось amel27, 15-07-2011 в 11:20.

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:04, 15-07-2011 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Задача автором поставлена не совсем корректно:
Код: Выделить весь код
   -p <string>,  --path <string>
     Path to scan
обрабатывает не только файлы по указанному пути, но и во всех вложенных каталогах. Таким образом, если ориентироваться на озвученное предложение — «VirutKiller.exe» может многократно «молотить» одни и те же файлы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:01, 15-07-2011 | #4


Пользователь


Сообщения: 91
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Спасибо большое за ответы, только че ж вам не спится, в такую то рань
Цитата amel27:
досадные минусы:
- нельзя запустить как сервис, т.е. требуется активный пользовательский сеанс;
- отсутствует поиск по атрибутам и размеру файла »
Ну... не все коту масленница .. Мне очень нравится, что 2 терабайтных винта с мелкими файлами (~ 2млн файлов) она меньше чем за секунду перелопачивает. Можно написать разрабу пожелания.
Кстати, к плюсам ты забыл добавить ее портативность.

Цитата Foreigner:
Не совсем понял какие пути надо "выковыривать", наверное что-то вроде: »
читать дальше »

Есть файл с такими строками:
E:\Мое\Personal\Рабочий стол\разбирати\PATRIOT26\Bootxp\BootVis-Tool.exe
Его нужно прочитать, и для каждого файла извлечь путь к его каталогу и запустить утилиту с этим параметром.
Но amel27 предложил гораздо более рациональное решение - запускать утилиту для каждого каталога а не файла.


Цитата amel27:
консольного интерфейса программы »
А что за консольный интерфейс ES? ES=Everything? Тогда ничего не нашел такого.. ПРостите уж..

Отправлено: 09:18, 15-07-2011 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата PATRI0T:
А что за консольный интерфейс ES? ES=Everything? »
ссылка с оффсайта

Цитата PATRI0T:
к плюсам ты забыл добавить ее портативность »
добавил

Отправлено: 09:51, 15-07-2011 | #6


Пользователь


Сообщения: 91
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Хм... слепой ваще.. Спасибо большое, тема решена.
ЗЫ. А про прогу ты знал? Расширил твой кругозор?

Отправлено: 10:55, 15-07-2011 | #7


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


PATRI0T, еще одна итерация с учетом особенностей virutkiller, отмеченной Iska
Код: Выделить весь код
@(set $b=?
  for /f "delims=" %%a in ('es -s "*.exe"') do @(set "$a=%%~dpa"
  SETLOCAL EnableDelayedExpansion
  call set "$c=%%$a:!$b!=?%%"
  if "!$c:~,1!"=="?" (set "$a=!$b!") else virutkiller -y -p "!$a!"
  for /f "delims=" %%x in ("!$a!") do @ENDLOCAL& set "$b=%%~x"
))
Цитата PATRI0T:
А про прогу ты знал? »
не знал, но мне от неё пользы мало по отмеченным выше причинам
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:42, 15-07-2011 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вычислить путь из полного пути, и обработать его программой.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Список файлов из поддиректорий с указанием полного пути Sat_Kelman Скриптовые языки администрирования Windows 4 20-03-2020 17:17
Как обработать сразу очень много файлов программой scriptjpg? ALEXEY_DFD Хочу все знать 1 10-04-2011 19:13
[решено] Вернуть имя ЕХЕ из полного пути к нему FlatX007 AutoIt 2 14-05-2009 12:12
массив $_GET как его обработать darksmoke Вебмастеру 11 29-03-2008 00:53
Не работает перемотка при просмотре Vob файла. Как его обработать? Do Not Disturb Видео и аудио: обработка и кодирование 4 22-11-2006 21:32




 
Переход