Войти

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


foma24
22-12-2013, 12:07
Здравствуйте. Подскажите пожалуйста, есть папка C:\111\ нужно в текстовый файл вывести названия всех файлов в этой папке и всех подпапках. Названия файлов нужны без расширения.

sov44
22-12-2013, 12:29
@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%a in ('dir /b /s /a-d "c:\111\*"') do echo %%~na
pause

foma24
22-12-2013, 13:16
setlocal enabledelayedexpansion

for /f "delims=" %%a in ('dir /b /s /a-d "F:\download\*"') do echo %%~na >> "F:\!!!Work\spisok\list.txt"
pause

Попытался перенести в текстовый файл, пишет Системе не удается найти указанный путь.

Foreigner
22-12-2013, 13:20
Убери:
enabledelayedexpansion »

foma24
22-12-2013, 13:26
Огромное спасибо, все заработало. Если не трудно поясните пожалуйста почему enabledelayedexpansion так повлияло на вывод в текстовый файл ?

Foreigner
22-12-2013, 13:40
foma24, Оно не любит "!" воск. знаков, т.к. при отложенном расширении переменных среды ( смотреть setlocal /? ) синтаксис допускает использовании восклицательных знаков в качестве обозначения переменных.

Это все, имхо, бажность cmd, которая работает с текстом через пень-колоду.

foma24
22-12-2013, 15:12
Еще раз огромное спасибо.

Простите, что надоедаю. Чисто из любопытства, а как решение той же самой задачи выглядит на Powershell

Foreigner
22-12-2013, 15:38
foma24,

gci "c:\111" -recurse -force | ? { $_ -isnot [io.directoryinfo] } | % { $_.basename } | out-file "F:\!!!Work\spisok\list.txt"

foma24
22-12-2013, 19:58
Огромное спасибо




© OSzone.net 2001-2012