Directory printer (делает список файлов/папок)
как реализовать принтер дерева файлов/папок в txt файл?
условия задачи: 1. BAT файл должен уметь делать список файлов по маске (например *.txt или *.*) 2. BAT файл должен уметь делать список папок и естественно подпапок 3. можно ли реализовать работу из текущей папки? т.е. откуда запустили BAT, там он листинг и проводит (+ в подпапках тоже проводит листинг). т.е. подставляет путь своего местонахождения в переменную задания пути. а также если возможно чтобы умел работать и с подстановкой пути. (например по умолчанию переменная x=CurrentDir, но пользователь туда может вписать свой путь например C:\Program Files). с этим путем BAT и будет работать. получается маску файлов реализовать отдельной строкой нужно? чтобы работало например так: x=CurrentDir, y=*.txt (либо например *.* по желанию пользователя) итого: x+y=CurrentDir:\*.txt 4. у пользователя должен быть выбор на п.1. или п.2. это можно реализовать либо оператором case и чтобы BAT спрашивал "что выполнить? листинг файлов или листинг папок?" либо реализовать любым друим способом 5. учесть работу с русскими именами (через chcp 1251 chcp 866 либо иным способом) Specially for amel27: я 3-4 года пользуюсь каким то сторонним Directory printer'ом, но ваше решение меня просто убило. настолько простое, что добавив капельку функционала - получится мощный и полезный инструмент, а главное простой! пример простенького листера файлов ( "резак" длинных имен с сохранением расширения) от amel27 Код:
set $m=%CD% |
shadowbat, 1-4. ВСЁ это делает одна единственная команда DIR, т.е. весь смысл батника сводится к передаче ей нужных параметров: файлы/папки (параметр /A), начальная папка, маска и т.п. Варианты: через блок переменных, через параметры командной строки батника, интерактивно пользователем... как нужно?.. и нужно ли, если можно просто набрать в командной строке DIR с нужными параметрами? ;)
Цитата:
Код:
Tree "%ProgramFiles%" /A >tree.txt Цитата:
|
одно из решений: =)
Принтер Дерева папок: Код:
Tree "%CD%" >tree.txt |
shadowbat,
а немножко фантазии? Код:
Echo off&Chcp 866&Title L I S T I N G & Cls Код:
listing.bat "F:\2\part_name\dir_0014" *.* 1 1 |
Код:
set $m=%CD% например если в папке два файла: file.txt file & file.txt то в dir.txt будет только file.txt как то можно, чтобы в dir.txt записались оба файла? |
Код:
@echo off |
Georgio спасибо, помогло
|
Время: 07:27. |
Время: 07:27.
© OSzone.net 2001-