|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сравнение файлов по части имени |
|
CMD/BAT - [решено] Сравнение файлов по части имени
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать Помогите пожалуйста осилить задачу:
Существуют файлы вида: 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"))) |
|
Отправлено: 16:30, 15-11-2012 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать @echo off &setlocal enableextensions for /f "delims=" %%i in ('dir /b/s/ad') do ( pushd "%%i" call :list popd ) goto :eof :list if exist list.tmp del /q list.tmp for /f "delims=" %%a in ('dir /b/a-d Call1_*_*.nmf') do ( for /f "tokens=2,* delims=_" %%b in ("%%a") do if not "%%~nc"=="" echo "%%c" "%%a" >>list.tmp ) set digs="" for /f "tokens=1,*" %%a in ('sort list.tmp') do call :del_dups %%a %%b del /q list.tmp goto :eof :del_dups if %digs% == %1 del /q %2 set digs=%1 goto :eof |
Последний раз редактировалось kiripanda, 16-11-2012 в 22:05. Отправлено: 21:46, 16-11-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Kiripana, огромное Вам спасибо!!! Работает на задаче без всяких исправлений, как есть. Сегодня уже проходил боевое применение на массиве звонков. Все отлично! Еще раз большое спасибо, спасли кучу времени и нервов, из-за возможных ошибок ручной работы.
|
Отправлено: 19:57, 18-11-2012 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Сравнение текстовых файлов | Speedy | Программное обеспечение Windows | 9 | 30-03-2015 02:42 | |
CMD/BAT - Сравнение и объединение файлов | veresov | Скриптовые языки администрирования Windows | 4 | 08-08-2012 10:44 | |
CMD/BAT - Сравнение файлов по имени | stasy9110 | Скриптовые языки администрирования Windows | 1 | 04-12-2011 21:27 | |
CMD/BAT - Выборка файлов по части названия | скуби_ДУ | Скриптовые языки администрирования Windows | 7 | 03-08-2011 10:35 | |
Сравнение файлов | Guest | Программирование и базы данных | 6 | 24-04-2004 04:47 |
|