Войти

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


New DiploBoy
15-06-2009, 18:32
Здравствуйте. Вчера столкнулся такой проблемой. У меня есть коллекция файлов. Для этих файлов надо создаст список. Так как файлы очень много (50 000), как надо написать командную строку, который создаст полный список файлов и каталогов. Спасибо

Drongo
15-06-2009, 19:34
New DiploBoy, Если нужно что-то вроде структуры или простого списка, то вот:
@echo off

chcp 1251
tree /A /F > list.txtЕсли же нет, то расширьте задачу. Вам нужно, чтобы список каталогов был отдельно, а список файлов отдельно?

New DiploBoy
15-06-2009, 19:38
Drongo,
Спасибо. Этот код хватит.

Sirimika
07-02-2011, 14:53
Задача подобная, только нужно вывести список файлов не из всех папок подряд, а выборочно.

@echo on
SETLOCAL enabledelayedexpansion

set Otdel1="1.0.1 Финансовый департамент"
set Otdel2="1.0.2 Юридический департамент"
set Otdel3="1.0.3 Департамент HR"
set Otdel4="1.0.4 Департамент IT"
set Otdel5="1.0.5 Департамент PR"
set Otdel6="1.0.6 Департамент маркетинга"
set Otdel7="1.0.7 Департамент экономической безопасности"
set Otdel8="1.0.8 ДОУ"
set Otdel9="1.0.9 АХУ"

chcp 1251
For /L %%i In (1,1,9) Do (
tree "Z:\1.0 Департамент отделов обеспечения/%Otdel%%i%/1.0.%%i.0 Внутренние документы подразделения" /A /F > list2.txt
)
pause

не могу понять как нужно правильно в пути написать переменную отдела.
Писала: %Otdel%%i%
!Otdel%%i! выдает что:

Z:\1.0 ДЕПАРТАМЕНТ ОТДЕЛОВ ОБЕСПЕЧЕНИЯ\1.0.9.0 ВНУТРЕННИЕ ДОКУМЕНТЫ ПОДРАЗДЕЛЕНИЯ
Путь задан неправильно: \1.0 ДЕПАРТАМЕНТ ОТДЕЛОВ ОБЕСПЕЧЕНИЯ\1.0.9.0 ВНУТРЕННИЕ ДОКУМЕНТЫ ПОДРАЗДЕЛЕНИЯ
Подпапки отсутствуют

El Sanchez
07-02-2011, 15:30
не могу понять как нужно правильно в пути написать переменную отдела. »
Sirimika,

call tree "Z:\1.0 Департамент отделов обеспечения\%%Otdel%%i%%\1.0.%%i.0 Внутренние документы подразделения" /A /F > list2.txt

Sirimika
07-02-2011, 16:25
если написать так
call tree "Z:\1.0 Департамент отделов обеспечения\%%Otdel%%i%%\1.0.%%i.0 Внутренние документы подразделения" /A /F > list2.txt

то выдает:

Слишком много параметров: └╒╙"\1.0.9.0 Внутренние документы подразделения"

El Sanchez
07-02-2011, 17:15
Слишком много параметров: └╒╙"\1.0.9.0 Внутренние документы подразделения" »
Sirimika,
Во первых, переместите кавычки в каждом объявлении переменной из красной позиции в зеленую:

set "Otdel1="1.0.1 Финансовый департамент"
...
set "Otdel9="1.0.9 АХУ"

Во вторых, если работаете с кириллицей в CMD, сохраняйте скрипт в кодировке DOS (OEM-866), т.е. Notepad не подходит.
В третьих, уберите setlocal и chcp 1251.

Sirimika
08-02-2011, 14:41
1. Кавычки все перенесла
2. сохранить я могу только в ANSI, Юникод, Юникод Big Endian, UTF-8. Сейчас у меня сохранено в ANSI
3. убрала Setlocal и chcp1251

Получаю вот что:
Z:\1.0 ─ХЯРЁЄРЬХЭЄ ЮЄФХЫЮТ ЮСХЁЯХЎХЭШ \1.0.9 └╒╙\1.0.9.0 ┬ЭЄЄЁХЭЭШХ ФЮЪЄЬХЭЄ√ ЯЮФЁРЧФХЫХЭШ
Путь задан неправильно: \1.0 ─ХЯРЁЄРЬХЭЄ ЮЄФХЫЮТ ЮСХЁЯХЎХЭШ \1.0.9 └╒╙\1.0.9.0 ┬ЭЄЄЁХЭЭШХ ФЮЪЄЬХЭЄ√ ЯЮФЁРЧФХЫХЭШ
Подпапки отсутствуют

El Sanchez
08-02-2011, 15:20
Получаю вот что:
Z:\1.0 ─ХЯРЁЄРЬХЭЄ ЮЄФХЫЮТ ЮСХЁЯХЎХЭШ \1.0.9 └╒╙\1.0.9.0 ┬ЭЄЄЁХЭЭШХ ФЮЪЄЬХЭЄ√ ЯЮФЁРЧФХЫХЭШ
Путь задан неправильно: \1.0 ─ХЯРЁЄРЬХЭЄ ЮЄФХЫЮТ ЮСХЁЯХЎХЭШ \1.0.9 └╒╙\1.0.9.0 ┬ЭЄЄЁХЭЭШХ ФЮЪЄЬХЭЄ√ ЯЮФЁРЧФХЫХЭШ
Подпапки отсутствуют »
Sirimika, или избавляйтесь от кириллических названий папок, или опять же
сохраняйте скрипт в кодировке DOS (OEM-866), т.е. Notepad не подходит »
Скачайте AkelPad (http://soft.oszone.net/program/1702/AkelPad/) или Notepad++ (http://soft.oszone.net/program/5560/Notepad_Portable/), сохраните батник в нужной кодировке и забудьте про стандартный виндовый Notepad.

amel27
08-02-2011, 15:59
забудьте про стандартный виндовый Notepad »ту упоминали, что можно использовать шрифт Terminal

Sirimika
09-02-2011, 12:13
Скачайте AkelPad или Notepad++ »

Дома то я сама этим пользуюсь, просто на работе разрешается использовать только виндовое %)
Так-с с кодировкой решился вопрос.
Теперь другая проблема =(
В файл он записывает только данные из последней папки из 9

Sirimika
09-02-2011, 12:50
все разобралась. Дурацкая опечатка.

Нужно было написать
/A /F >> list2.txt




© OSzone.net 2001-2012