У меня есть следующая команда, которая будет перебирать все подкаталоги в определенном месте и выводить полный путь:
for /d %i in ("E:\Test\*") do echo %i
Даст мне:
E:\Test\One
E:\Test\Two
Но как мне получить как полный путь, так и только имя каталога, чтобы команда do могла выглядеть примерно так:
echo %i - %j
И результат может быть примерно таким:
E:\Test\One - One
E:\Test\Two - Two
Заранее спасибо!





Для возврата только полного пути или имени каталога можно использовать следующий синтаксис команды:
%~fI - expands %I to a fully qualified path name
%~nI - expands %I to a file name only
Используя ваш пример, следующая команда выведет список каталогов в указанном вами формате:
for /d %i in ("E:\Test*") do echo %~fi - %~ni
Вы можете использовать "% ~ ni". Это расширенная подстановка, которая вернет имя файла пути (или, точнее, последнюю часть, которая в вашем случае является именем каталога):
for /d %i in ("E:\Test\*") do echo %i - %~ni
См. Также этот вопрос: Что означает% ~ d0 в пакетном файле Windows?