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

Sat_Kelman 30-03-2011 09:23 1647015

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

Нужно составить файл где будут полные пути к файлам из определенного каталога и его подкаталогов с определенной маской.
Пример: Есть каталог Incoming. в нем лежать какие то папки, в них могут еще и т.д. нужен список фалов с расширением ppt.
Надо получить файл (к примеру list.txt) следующего содержания

C:\Incoming\my.ppt
C:\Incoming\CD\test.ppt
C:\Incoming\орион.ppt
C:\Incoming\Не мои\разобрать\программа.ppt
..........

Подскажите пожалуйста код, данного батника.

Petya V4sechkin 30-03-2011 10:03 1647049

Код:

Dir /A-D /B /S C:\Incoming\*.ppt >list.txt

zbeypepels 20-03-2020 00:44 2913948

Понадобилось получить список из папки, не включая вложенные папки, дошло что такого нету.
Или есть и я не нашел?
Вот , типа такое:
S:\WgetS\2019_12_13\
S:\WgetS\2019_12_13\muzik\
S:\WgetS\2019_12_13\нестирать\
... а тут много файлов, ну допустим *.mp4
Надо получить список с полными путями из S:\WgetS\2019_12_13\*.mp4 - но не заходя в подпапки, не трогая "muzik" и "нестирать". В dir полные путя дает /S но оно же насквозь берет все папки. А без /S - /B даёт только имена файлов, без пути.
Код:

dir /s /b /O:S "S:\WgetS\2019_12_13\*.mp4" > List-videos.m3u
...?

megaloman 20-03-2020 05:31 2913956

Цитата:

Цитата zbeypepels
Понадобилось получить список из папки, не включая вложенные папки ... но не заходя в подпапки". »

Код:

>"Z:\List.txt" (For %f In ("D:\CMD_Forum\Муз\112_Billy_Novik\*.mp3") Do @Echo %f)
Код:

>"Z:\List.txt" (Pushd "D:\CMD_Forum\Муз\109_Чайф" &FOR /F "tokens=*" %f IN ('Dir /B /O:S "*.mp3"') DO @Echo %~dpnxf)
Это примеры командной строки. Если это часть cmd-скрипта, заменить %f на %%f

zbeypepels 20-03-2020 17:17 2914046

Так и подумалось, что через FOR надо буит...
Сделал так:
Код:

@echo off
chcp 65001
cd /d "%~dp0"

set dat=List-date.m3u
set b2s=List-big2small.m3u
set s2b=List-small2big.m3u
set fld=%~dp0Media


Pushd "%fld%"

>"..\%dat%" (FOR /F "tokens=*" %%A IN ('Dir /B /O:D "*.mp4"') DO Echo %%~dpnxA)

>"..\%b2s%" (FOR /F "tokens=*" %%B IN ('Dir /B /O:-S "*.mp4"') DO Echo %%~dpnxB)

>"..\%s2b%" (FOR /F "tokens=*" %%C IN ('Dir /B /O:S "*.mp4"') DO Echo %%~dpnxC)

Благодарю!


Время: 06:02.

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