for /r %i in (*) do @echo %~ni
або
forfiles /s /c "cmd /c if @isdir==FALSE noquotes.bat @fname"
припускаючи файл noquotes.batу вашому % PATH% із цим вмістом
@echo %~1
для / r підхід пояснено
for /rрекурсивно проходить поточний каталог (можна вказати каталог for /r drive:\path\, передбачається поточний каталог) та виконує команду, вказану do для кожного файлу, відповідного набору (*). Набір (.)відповідав би лише каталогам. @echo% ~ ni Ця команда працює як є з підказки. Удвічі збільшити свої котирування, якщо помістити їх у пакетний файл. тобтоfor /r %%i in (*) do @echo %%~ni
пояснюється підхід forfiles
/sперераховує поточний і всі підкаталоги
/cвиконують команду всередині лапок
@isdirі @fnameє символом, що видається в командний рядок
. Додатковий пакетний файл noquotes.batдопомагає, знімаючи подвійні лапки з% ~ 1 (параметр 1),
forfilesтакож дозволяє вказати шлях, з якого слід починатиforfiles /P C:\Windows ...