for /r %i in (*) do @echo %~ni
или
forfiles /s /c "cmd /c if @isdir==FALSE noquotes.bat @fname"
предполагая файл noquotes.batв вашем % PATH% с этим содержимым
@echo %~1
для / г подхода объяснил
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 ...