Цикл по каталогам в командной строке Windows XP - PullRequest
1 голос
/ 20 ноября 2008

У меня есть следующая команда, которая перебирает все подкаталоги в определенном месте и выводит полный путь:

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

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 20 ноября 2008

Следующий синтаксис команды может использоваться для возврата только полного пути или имени каталога:

%~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
0 голосов
/ 20 ноября 2008

Вы можете использовать "% ~ ni". Это расширенная замена, которая будет возвращать имя файла пути (или, точнее, последнюю часть, которая является именем каталога в вашем случае):

for /d %i in ("E:\Test\*") do echo %i - %~ni

См. Также этот вопрос: Что означает% ~ d0 в командном файле Windows?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...