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 ...