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