我正在尝试从批处理文件中执行以下命令:
@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 %f
仅for %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"