2008-11-20 10 views
1

je la commande suivante qui bouclera sur tous les sous-répertoires dans un emplacement spécifique et sortie le chemin complet:bouclez répertoires dans la commande Windows XP invite

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

me donnera:

E:\Test\One 
E:\Test\Two 

Mais comment puis-je obtenir à la fois le chemin complet, et juste le nom du répertoire, de sorte que la commande ne pourrait être quelque chose comme:

echo %i - %j 

Et la sortie pourrait être quelque chose comme:

E:\Test\One - One 
E:\Test\Two - Two 

Merci d'avance!

Répondre

4

La syntaxe de commande suivante peut être utilisée pour renvoyer le chemin complet ou le nom du répertoire que:

%~fI  - expands %I to a fully qualified path name 
%~nI  - expands %I to a file name only 

En utilisant votre exemple, la commande suivante liste des répertoires dans le format que vous avez spécifié:

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

Fantastique, merci! Travaillé parfaitement. –

0

Vous pouvez utiliser "% ~ ni". Ceci est une substitution améliorée qui renverra le nom de fichier d'un chemin (ou, plus précisément, la dernière partie, qui est le nom du répertoire dans votre cas):

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

Voir aussi cette question: What does %~d0 mean in a Windows batch file?

Questions connexes