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

Ответить
Аватара пользователя
PATRI0T

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

Сообщение PATRI0T »

Добрый вечер, суть в следующем: нужно почистить комп от вирусов, они заражают только exe файлы. Специальная лечащая утилита от касперского virutkiller.exe ищет во всех файлах, но вири заражают только exe. (Вероятность 99.99%). Утилитка позволяет указать путь к директории, где искать зловредов.

Также есть другая программа Everything. - Позволяет очень быстро искать на NTFS системах, напрямую обращаясь к ней, как к базе данных (кстати, очень хорошая прога - хозяйке на заметку), и найденые файлы можно экспортировать в txt.

Задача:
Написать батник, который будет брать все строки из этого файла, выковыривать путь к каталогу из полного пути и запускать virutkiller.exe -p ""



Помогите с батничком, я не йода Изображение

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

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

Сообщение Foreigner »

PATRI0T,

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



Код:

Код: Выделить всё

@echo off
setlocal
for /f "tokens=*" %%i in ( list.txt ) do virutkiller.exe -p "%%~dpi"
Аватара пользователя
amel27

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

Сообщение amel27 »

еще вариант - с использованием консольного интерфейса программы (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 системах, напрямую обращаясь к ней, как к базе данных
CMD/BAT - [решено] Вычислить путь из полного пути, и обработать его программой.




не так - позволяет быстро искать с СВОЕЙ базе данных, которая создаётся/обновляется посредством предварительного сканирования и оперативного мониторинга локальных NTFS-томов


читать дальше »



Цитата PATRI0T:



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




неплоха, очевидные плюсы:

- бесплатность;

- скорость;

- портабельность;

- поддержка регулярных выражений;

- возможность подключения к копии программы для сканирования удаленных хостов;

- встроенный HTTP-сервер;

- наличие консольного интерфейса



досадные минусы:

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

- отсутствует поиск по атрибутам и размеру файла
Аватара пользователя
Iska

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

Сообщение Iska »

Задача автором поставлена не совсем корректно:



Код:

Код: Выделить всё

   -p ,  --path 
     Path to scan

обрабатывает не только файлы по указанному пути, но и во всех вложенных каталогах. Таким образом, если ориентироваться на озвученное предложение — «VirutKiller.exe» может многократно «молотить» одни и те же файлы.
Аватара пользователя
PATRI0T

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

Сообщение PATRI0T »

Спасибо большое за ответы, только че ж вам не спится, в такую то рань Изображение


Цитата amel27:



досадные минусы:

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

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




Ну... не все коту масленница Изображение.. Мне очень нравится, что 2 терабайтных винта с мелкими файлами (~ 2млн файлов) она меньше чем за секунду перелопачивает. Можно написать разрабу пожелания.

Кстати, к плюсам ты забыл добавить ее портативность.




Цитата Foreigner:



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





читать дальше »




Есть файл с такими строками:

E:\Мое\Personal\Рабочий стол\разбирати\PATRIOT26\Bootxp\BootVis-Tool.exe

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

Но amel27 предложил гораздо более рациональное решение - запускать утилиту для каждого каталога а не файла.






Цитата amel27:



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




А что за консольный интерфейс ES? ES=Everything? Тогда ничего не нашел такого.. ПРостите уж..
Аватара пользователя
PATRI0T

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

Сообщение PATRI0T »

Хм... слепой ваще.. Спасибо большое, тема решена.

ЗЫ. А про прогу ты знал? Расширил твой кругозор?
Аватара пользователя
PATRI0T

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

Сообщение PATRI0T »

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:



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




не знал, но мне от неё пользы мало по отмеченным выше причинам
Ответить

Вернуться в «Скриптовые языки администрирования Windows»