PDA

Показать полную графическую версию : Списки файлов в поддиректориях


ruslaw
02-12-2017, 23:27
Продолжение топика 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
кстати, процитированный код включает в листинг и папки, что нежелательно

megaloman
03-12-2017, 00:33
@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
@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
Спасибо большое!




© OSzone.net 2001-2012