Показать полную графическую версию : Поиск динамичных названий файлов
dj_crazy_joker
08-09-2012, 02:28
Вообщем имеются файлы таково типа "GMчтото.zip" "GMчтото.rar" примеры "GM-v96.02.zip" "GM-v97.01.rar"
их надо найти например на диске C
Ещё есть вопрос можно ли задать поиск сразу во всем дискам которые есть, ну на крайний случай как указать список дисков по которым искать.
их надо найти например на диске C »
dir c:\gm* /b /s /a-d
>
Поиск динамичных названий файлов »
это музыка бывает динамичной. Или ты о их названиях при произнесении нараспев? ;)
dj_crazy_joker
08-09-2012, 02:45
http://hinvin.wordpress.com/2009/07/19/%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5-%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-bat/
вот нашёл мануал, но не могу составить мне нужную
надо чтоб подходила под "GM-vдве цифры.две цифры.rar"
вот пример рабочего кода для одного примера
@Where /r D:\ GM-чтото.чтото.zip >> C:\papki.txt
Попробуйте так:
@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
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
gora, Foreigner, ваши варианты не работают.
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
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
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
dj_crazy_joker,
Кодировку можно поправить:
@echo off
1>nul chcp 1251
...
А вот со скоростью ничего поделать не могу. Попроси написать vbs-скрипт, он должен быть пошустрей, но все равно ему придется пройтись по всей фс. А что за прога? Она наверное заранее обновляет базу, типа как locate и updatedb?
Попроси написать vbs-скрипт, он должен быть пошустрей, …»
Навряд ли. По той же причине:
…но все равно ему придется пройтись по всей фс. »
dj_crazy_joker
09-09-2012, 01:00
Foreigner, кодировку уже сам поменял, насчёт проги незнаю, писал знакомый кодер.
сейчас в моём скирпте 2 части (1.bat и 2.vbs) батник ищит и сохраняет в файле, vbs отправляет на мыло
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.