Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Создать список из вложенных папок (http://forum.oszone.net/showthread.php?t=206166)

lohi1234567 04-05-2011 14:53 1670122

Создать список из вложенных папок
 
Доброго время суток!
Помогите соорудить скрипт который должен название папок загнать в текстовый док

структура:


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 1670244

Цитата:

Цитата lohi1234567
желаемый результат »

Только названия без пути? Выбирай.
Без скрытых папок:
Код:

@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 1670250

Цитата:

Цитата lohi1234567
могут повторятся но записать нужно только один раз »

Сразу не заметил. Тогда так:
Код:

@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 1670510

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

Foreigner 05-05-2011 17:28 1670793

Цитата:

Цитата lohi1234567
нужен только один уровень вложений »

Код:

@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 1671088

то что нужно.


Время: 09:45.

Время: 09:45.
© OSzone.net 2001-