PDA

Показать полную графическую версию : [решено] Формирование списка файлов


Sat_Kelman
22-03-2011, 14:08
День добрый!

Существует такая иерархия: На диске С лежит папка In, в нее закидываются папки вида ФИО - ААА, ФИО - ВВВ, ФИО - С АА и так далее (то есть фаилия имя отчество, далее дефис, а потом может быть что угодно), в каждой такой папке лежать файлы letter.arj, letter.doc. Папки могут удаляться, могут добавляться новые, но файлы в них всегда одинаково называются (letter.arj, letter.doc)
Нужно написать батник который будет формировать файл List следующего содержания
C:\In\ФИО - ААА\letter.*
C:\In\ФИО - ВВВ\letter.*
C:\In\ФИО - С АА\letter.*

по сути меняется только то, что выделено. Может батник как-то создаст список всех каталогов в папке In и потом дописать просто \letter.*
Условие - батник будет лежать на другом диске.
Не могу осилить, помогите чем сможете.

gora
23-03-2011, 13:31
Попробуйте так:@Echo Off
:: Вывод в файл List будет в кодировке кириллица Windows (1251)
:: Если нужно в DOS кодировке, то закомментировать следующую строку
ChCp 1251>Nul
:: Путь к исходной папке
Set folder=c:\In

(For /F "UseBackQ Delims=" %%i In (`Dir "%folder%" /B /ON 2^>Nul`) Do If Exist %folder%\%%i\letter.arj If Exist %folder%\%%i\letter.doc Echo %folder%\%%i\letter.*)>List
Проверяется одновременное наличие обоих указанных файлов.(letter.arj, letter.doc) »
Файл List формируется рядом с батником.

Busla
23-03-2011, 19:37
gora, а зачем UseBackQ?
сортировать лучше уже отфильтрованный итог - может получиться гораздо быстрее
почему не for /D или, если уж на то пошло, не dir /AD ?
%folder%\%%i\letter.arj тоже надо в кавычки
перед echo - собаку

gora
23-03-2011, 21:45
а зачем UseBackQ?
сортировать лучше уже отфильтрованный итог - может получиться гораздо быстрее
почему не for /D или, если уж на то пошло, не dir /AD ? »
Предложите свой вариант, я не утверждаю, что мой лучший.%folder%\%%i\letter.arj тоже надо в кавычки »
Видимо Вы правы, но вариант работающий, проверено на структуре папок приведенных в первом посте.перед echo - собаку »
Зачем?

Busla
24-03-2011, 09:27
Цитата Busla:
перед echo - собаку »
Зачем? »
каюсь - не нужна




© OSzone.net 2001-2012