Войти

Показать полную графическую версию : [решено] получение списка имён файлов без имен папок (с подкаталогами)


shadowbat
20-12-2015, 15:02
Здравствуйте!
есть файлы:
.\abc\1.txt
.\abc\2.txt
.\abc\zxy\3.txt
.\abc\zxy\1.txt
.\abc\zxy\file.bat

нужно получить такой список (запускаем file.bat)
1.txt
2.txt
3.txt
1.txt

пробовал с dir, но оба варианта делают только половину работы
>"list1.txt" dir /a:-d /b /s "*.txt" - с подкаталогами, но полный путь
>"list2.txt" dir /a:-d /b "*.txt" - только имя файла, но без подкаталогов
нужно только имя файла и с подкаталогами

Foreigner
20-12-2015, 15:25
@echo off

1>list.txt (for /f "tokens=*" %%i in ('dir /b /s /a-d *.txt') do echo %%~xni)

Iska
20-12-2015, 15:31
Например, так:
@echo off

>"Result.csv" (
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /s /a:-d "*.txt"`
) do echo %%~nxi
)

Foreigner
20-12-2015, 15:36
1>list.txt forfiles /p ".\abc" /s /m *.txt

Iska
20-12-2015, 15:41
Ещё один вариант:
@echo off

>"Result.csv" (
for /r %%i in (.) do 2>nul dir /a:-d /b "%%~i\*.txt"
)

shadowbat
20-12-2015, 15:46
Целая куча, спасибо за помощь!

лучше всего подошел первый вариант
в третьем вначале пустая строка + все имена файлов закавычены
2 и 4 эксель формат

Iska
20-12-2015, 19:29
2 и 4 эксель формат »
shadowbat, ни разу :), обычный текстовый файл. Просто Вы должны понимать, что, если Вы пишете в некий файл *.txt в том же каталоге, который опрашиваете на предмет *.txt-файлов — этот самый некий файл попадёт в выборку. Дабы не предпринимать дополнительных усилий по исключению его из получаемого перечня — проще всего сменить ему расширение.

Целая куча, спасибо за помощь! »
И это Вам ещё RoboCopy и wmic.exe в числе прочих не успели предложить :).




© OSzone.net 2001-2012