Войти

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


lohi1234567
04-05-2011, 14:53
Доброго время суток!
Помогите соорудить скрипт который должен название папок загнать в текстовый док

структура:


c:\data
|
|--10.10.10
|-- some name 1
|-- some name 2
|-- some name 3
|
|--11.11.11
|-- some name 4
|-- some name 5
|
|--12.12.12
|-- some name 2
|-- some name 6
|
...

задача:
записать название папок которые находятся внутри в некой общей (с:\data) в текст файл без повторений

названия some name 1,some name 2,... могут повторятся но записать нужно только один раз

желаемый результат

list.txt:

some name 1
some name 2
some name 3
some name 4
some name 5
some name 6

Foreigner
04-05-2011, 18:35
желаемый результат »
Только названия без пути? Выбирай.
Без скрытых папок:

@echo off
1>nul chcp 1251
for /r "c:\data" /d %%i in (*) do 1>>list.txt echo %%~nxi

Все папки

@echo off
1>nul chcp 1251
for /f "tokens=*" %%i in (' dir /b /s /ad "c:\data" ') do 1>>list.txt echo %%~nxi

Foreigner
04-05-2011, 18:51
могут повторятся но записать нужно только один раз »
Сразу не заметил. Тогда так:

@echo off
setlocal
1>nul chcp 1251

for /f "tokens=*" %%i in (' dir /b /s /ad "c:\data" ') do set "mydirs_%%~snxi=%%~nxi"
for /f "tokens=2 delims==" %%i in (' set mydirs_ ') do 1>>list.txt echo %%i

lohi1234567
05-05-2011, 08:53
В принципе почти то, только забыл уточнить, что нужен только один уровень вложений (папки some name 1... могут иметь вложеные другие папки и их в список включать не нужно)
сортировка, это хорошо :)

Foreigner
05-05-2011, 17:28
нужен только один уровень вложений »

@echo off
setlocal
1>nul chcp 1251

for /d %%i in ( "c:\data\*" ) do (

for /f "tokens=*" %%j in (' dir /b /ad "%%i\*" ') do set "mydirs_%%~snxj=%%~nxj"

)

for /f "tokens=2 delims==" %%i in (' set mydirs_ ') do 1>>list.txt echo %%i

lohi1234567
06-05-2011, 08:40
то что нужно.




© OSzone.net 2001-2012