Windows – Looping over directories in Windows XP command prompt


I have the following command which will loop over all the subdirectories in a specific location and output the full path:

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

Will give me:


But how do I get both the full path, and just the directory name, so the do command might be something like:

echo %i - %j

And the output might be something like:

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

Thanks in advance!

Best Solution

The following command syntax can be used to return the full path or directory name only:

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

Using your example, the following command will list directories in the format that you specified:

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