在Windows XP命令提示符下循环访问目录

我有以下命令将循环在特定位置的所有子目录并输出完整path:

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

会给我:

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

但是,如何获取完整path和目录名称,所以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批处理文件中的含义是什么?