![]() |
Сравнение файлов по части имени
Помогите пожалуйста осилить задачу:
Существуют файлы вида: Call1_9_86686567_1_31.nmf Call1_10_86686567_1_31.nmf Call1_11_86686567_1_31.nmf В общем говоря если часть имени одинакова после второго символа "_", то убить все кроме одного. Так как сначала предполагалось, что у них у всех одинаковый размер, и их можно уничтожать по этому признаку, то был составлен скрипт (ниже), который лазил по подпапкам и это добросовестно делал. Но потом оказалось что размер может чуть отличаться, и единственный способ - обрабатывать их по имени. Только вот работать со буквами оказалось совсем тяжко. :( Помогите пожалуйста доработать. @( for /f "tokens=*" %%i in ('dir /b /s /ad') do ( pushd "%%i" for /f "delims=" %%f in ('dir/b/a-d/os') do @( if defined $fz (set/a "$fc=$fz-%%~zf" call set "$fc=%%$fc:0=%%" if not defined $fc del "%%f") set "$fz=%%~zf"))) |
Код:
@echo off &setlocal enableextensions |
Kiripana, огромное Вам спасибо!!! Работает на задаче без всяких исправлений, как есть. Сегодня уже проходил боевое применение на массиве звонков. Все отлично! Еще раз большое спасибо, спасли кучу времени и нервов, из-за возможных ошибок ручной работы.
|
Время: 12:47. |
Время: 12:47.
© OSzone.net 2001-