批处理文件中的文件夹名称

时间:2011-02-21 06:49:30

标签: batch-file

如何在for循环中获取文件夹的名称。我有以下目录结构

c:\Main\**FolderName1**\FolderName3\somefile.txt
c:\Main\**FolderName2**\FolderName4\somefile1.txt

我希望在for循环中获得 FolderName1 FolderName2 的名称。

这就是我现在正在做的事情:

set "errfolderpath=C:\Main\"
FOR /D /R %errfolderpath% %%K in (.\*) DO (
  SET folderName=%%~nK
  echo foldername=!folderName!
)

当我运行上面的程序时,它打印所有子文件夹的名称,而我只想要名称 FolderName1 FolderName2 ,而不是循环其余的文件夹。

我希望我能说清楚。 谢谢。

1 个答案:

答案 0 :(得分:0)

/R folder参数指定起始文件夹和递归搜索,而您只需要前者而不是后者。

因此,只需将您的根文件夹与文件掩码一起使用,如下所示:

set "errfolderpath=C:\Main\"
FOR /D %%K in ("%errfolderpath%*") DO (
  SET folderName=%%~nK
  echo foldername=!folderName!
)