为什么我的 for 循环找不到任何文件?

为什么我的 for 循环找不到任何文件?

我有一个非常简单的 for 循环,我想在 Windows CMD 提示符/批处理文件中执行(我已经尝试在命令行中使用 %i 并在批处理文件中使用 %%i):

for %%i in (workspace\*) do echo %%i

我不想显示文件夹中的所有子文件夹(只是作为一个使循环工作的非常简单的示例)但没有显示任何内容。

我在这里做错了什么?

答案1

默认情况下for仅显示文件,而不显示目录,因此仅包含子目录的目录将不显示任何内容。要显示目录,您需要添加以下选项/d

for /d %%i in (workspace\*) do echo %%i

假设该命令在批处理文件中(%如果输入则仅单个签名),并显示仅有的目录。没有选项可以同时显示这两个目录:您需要使用 DavidPostill 建议的命令:

for /f "usebackq" %%i in (`dir /b`) do echo %%i

答案2

如果您从命令提示符而不是批处理文件运行此程序,则需要使用 %i,而不是 %%i。

或者,您可以使用forfiles具有不同选项的功能,它可能更轻松地完成您需要做的事情。

Forfiles 还可以查找文件夹。

相关内容