无法从批处理文件执行 FOR 循环

无法从批处理文件执行 FOR 循环

我正在尝试从批处理文件中执行以下命令:

@echo off & for /f "delims=*" %A in ('dir /s /b') do echo %~fA %~zA >> "\path\to\output.txt"

我发现这个命令来自另一个线程。它会打印出整个文件列表以及文件大小。

当我将其粘贴到命令行窗口时,我可以很好地执行此操作,但当我将其放入批处理文件中时,什么也没有发生。我是否遗漏了什么?为什么从 .bat 执行时会失败?

答案1

尝试%% 例如for %%f 而不是for %f,这可能会起作用在批处理文件中,您必须使用for %%f而不是for %ffor %f适用于命令行。更改所有引用,所以我想%%~zA而不是%~zA

您真的应该排除故障并尝试一下即使是一个简单的 for 循环,就像for %a in (*.*) do @ECHO %a您会意识到它也可以在命令行中工作而不是在批处理文件中工作,也许您会发现 %% 的要求。

答案2

请尝试

使用从 Windows 命令行运行代码时。

使用%%当运行文件内的.bat 脚本代码时。

在.bat 文件内部进行更改:

@echo off & for /f "delims=*" %%A in ('dir /s /b') do echo %%~fA %%~zA >> "\path\to\output.txt"

相关内容