首页 > 解决方案 > 列出文件/目录的名称以及相对于当前目录的路径

问题描述

我的问题陈述本身对我实际需要做的事情非常清楚。

现在这适用于我所在的当前目录中的文件。

for /r %%F in (*) do call set files=%%files%% "%%F"
echo %files% >> ..\..\TargetFolder\a\targetfile.config

但我想向上移动两个文件夹,然后在一个文件夹中挖掘,并且有多个文件夹。我想要所有这些文件夹的名称。

例如就像这样:

for /r %%F in (..\..\TargetFolder\) do call set files=%%files%% "%%F"
echo %files% >> ..\..\TargetFolder\a\targetfile.config

如果您能告诉我是否可以将它们保存在一个数组中,或者在 for 循环中一个一个地打印它们并在每次迭代中执行一些其他操作,那对我来说将是一个很大的帮助。

标签: filebatch-filecmddirectory

解决方案


好的,要为 指定除当前目录之外的(绝对或相对)根目录for /R,请执行以下操作,例如:

for /R "..\..\TargetFolder" %%F in (*) do echo %%~F

要获取目录列表而不是文件列表,请添加以下/D选项:

for /D /R "..\..\TargetFolder" %%F in (*) do echo %%~F

要获取纯文件/目录名称,请使用%%~nxF而不是%%~F.


要获取位于根目录的直接子目录中的文件,请执行以下操作:

for /D %%D in ("..\..\TargetFolder\*") do for %%F in ("%%~D\*") do echo %%~F

要获取位于那里的目录,请执行以下操作:

for /D %%D in ("..\..\TargetFolder\*") do for /D %%F in ("%%~D\*") do echo %%~F

推荐阅读