Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Поиск динамичных названий файлов (http://forum.oszone.net/showthread.php?t=242234)

dj_crazy_joker 08-09-2012 02:28 1985026

Поиск динамичных названий файлов
 
Вообщем имеются файлы таково типа "GMчтото.zip" "GMчтото.rar" примеры "GM-v96.02.zip" "GM-v97.01.rar"
их надо найти например на диске C

Ещё есть вопрос можно ли задать поиск сразу во всем дискам которые есть, ну на крайний случай как указать список дисков по которым искать.

ShaddyR 08-09-2012 02:36 1985027

Цитата:

Цитата dj_crazy_joker
их надо найти например на диске C »

dir c:\gm* /b /s /a-d
>
Цитата:

Цитата dj_crazy_joker
Поиск динамичных названий файлов »

это музыка бывает динамичной. Или ты о их названиях при произнесении нараспев? ;)

dj_crazy_joker 08-09-2012 02:45 1985028

http://hinvin.wordpress.com/2009/07/...%B8%D1%8F-bat/
вот нашёл мануал, но не могу составить мне нужную

надо чтоб подходила под "GM-vдве цифры.две цифры.rar"



вот пример рабочего кода для одного примера
@Where /r D:\ GM-чтото.чтото.zip >> C:\papki.txt

gora 08-09-2012 12:12 1985105

Попробуйте так:
Код:

@Echo Off
:: Диск для поиска
Set disk=c:
For /F "tokens=*" %%a In ('Dir "%disk%" /A-D /B /S ^| FindStr "GM-v[0-9][0-9].[0-9][0-9].zip GM-v[0-9][0-9].[0-9][0-9].rar"') Do Echo "%%a"
Pause>Nul


Foreigner 08-09-2012 14:05 1985141

gora, лучше точку экранировать:
Код:

"GM-v[0-9][0-9]\.[0-9][0-9]\.zip GM-v[0-9][0-9]\.[0-9][0-9]\.rar"

dj_crazy_joker 08-09-2012 17:14 1985187

gora, Foreigner, ваши варианты не работают.

ShaddyR 08-09-2012 20:09 1985242

dj_crazy_joker, в указанных условиях не вижу смысл лепить FOR'ы - достаточно кода
Код:

Set disk=c:
dir %disk%\gm-v??.??.* /b /s /a-d

Доп. обработка нужна, если могут быть варианты расширений или нужно в масках отличать ТОЛЬКО ЦИФРЫ при возможности нахождения там других символов. В условие такое не указано, значит вариант файла
GM-v9a.0-.txt
не рассматривается как возможный и требующий обработки.

Foreigner 08-09-2012 20:32 1985255

dj_crazy_joker, По всем локальным дискам ищет rar и zip, подходящие под шаблон GM-v00.00
Код:

@echo off
setlocal

set "wmic=wmic logicaldisk where drivetype=3 get name /value"

for /f "tokens=2 delims==" %%i in (' "%wmic%" ') do (
   
    dir /b /s /a %%i\*.zip %%i\*.rar | 1>>list.txt findstr /i "\<GM-v[0-9][0-9]\.[0-9][0-9]\."

)


dj_crazy_joker 08-09-2012 21:42 1985291

Foreigner, быстрота тоже важна, мои 3 тб инфы он проверял более 2 минут, а это не подойдёт + это окошко закроют уже давно

имеется прога, выполнение проги за 2-3 секунды, и делает тоже самое, но нужен именно батник

Код:

D:\Ќ®ў*п Ї*ЇЄ* (2)\GM-v96.02.zip
D:\Ќ®ў*п Ї*ЇЄ* (2)\GM-v97.01.zip
L:\Games\Ќ®ў*п Ї*ЇЄ* (2)\GM-v96.02.zip
L:\Games\Ќ®ў*п Ї*ЇЄ* (2)\GM-v97.01.zip

и ещё проблеммы с кодировкой

если исправить кодировку и докрутить поиск вот этого файла GM Selector.exe, то пойдёт как рабочий вариант.

Foreigner 08-09-2012 21:58 1985300

dj_crazy_joker,
Кодировку можно поправить:
Код:

@echo off
1>nul chcp 1251
...

А вот со скоростью ничего поделать не могу. Попроси написать vbs-скрипт, он должен быть пошустрей, но все равно ему придется пройтись по всей фс. А что за прога? Она наверное заранее обновляет базу, типа как locate и updatedb?

Iska 08-09-2012 22:45 1985320

Цитата:

Цитата Foreigner
Попроси написать vbs-скрипт, он должен быть пошустрей, …»

Навряд ли. По той же причине:
Цитата:

Цитата Foreigner
…но все равно ему придется пройтись по всей фс. »


dj_crazy_joker 09-09-2012 01:00 1985379

Foreigner, кодировку уже сам поменял, насчёт проги незнаю, писал знакомый кодер.

сейчас в моём скирпте 2 части (1.bat и 2.vbs) батник ищит и сохраняет в файле, vbs отправляет на мыло


Время: 14:01.

Время: 14:01.
© OSzone.net 2001-