Компьютерный форум 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=331619)

ruslaw 02-12-2017 23:27 2781901

Списки файлов в поддиректориях
 
Продолжение топика http://forum.oszone.net/thread-200208.html
Есть папка с множеством файлов и подпапок разного уровня вложения (до 6 уровней).
Необходимо в каждой подпапке создать тхт файл со списком файлов (но не папок) которые там лежат
и чтобы название тхт файла совпадало с названием подпапки.
В вышеупомянутом треде задача была решена только для первого уровня вложения
Цитата:

@Echo Off
For /F "tokens=*" %%d In ('dir /A:D /B') Do Dir /B ".\%%d">".\%%d\%%d.txt"
Но мне необходимо вычерпать все уровни.

ruslaw 03-12-2017 00:12 2781908

кстати, процитированный код включает в листинг и папки, что нежелательно

megaloman 03-12-2017 00:33 2781910

Код:

@Echo Off

Set "BoxIn=Z:\In"
Set "LogExt=txt"

Call :DirTxt "%BoxIn%"
For /F "usebackq delims=" %%d In (`Dir "%BoxIn%" /b /A:D /S 2^>nul`) DO Call :DirTxt "%%d"
GoTo :Eof

:DirTxt
        Set "OutLog=%~nx1.%LogExt%"
        >"%~1\%OutLog%" (For /F "usebackq delims=" %%f In (`Dir "%~1" /b /A:-D 2^>nul`) DO If /I Not "%%f"=="%OutLog%" @Echo %%f)
GoTo :Eof


alpap 04-12-2017 00:25 2782129

Код:

@echo off
set "d=Путь к папке"
for /f "delims=" %%a in ('dir /a-d/b/s "%d%"') do set "pp=%%~dpa"& call :sp "%%pp:~,-1%%" "%%a"
pause& exit

:sp
 >>"%~1\%~n1.txt" echo %~2
exit /b

если в списке не нужны полные пути, а только имена файлов, изменить так: ... echo %~nx2

ruslaw 04-12-2017 10:52 2782192

Спасибо большое!


Время: 03:03.

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