2

我有一个命令可以循环并设置目录和所有子目录下具有特定扩展名的每个文件的文件大小:

FOR /R "C:\Users" %%G IN (*.*) do set /a size = %size% + %%~zG

我希望命令在循环时使用 %size% + %%!zG,但是当我运行批处理文件时,输出不断将“%size%”设置为 0。我想要所有文件大小搜索加起来,而不仅仅是保持 0。最后发生的事情是将 %size% 设置为“扫描”的最后一个文件。

出于某种原因,它不断地说“0”,并且不会将每个“循环”加起来。谢谢你!感谢所有回复。

4

1 回答 1

2

试试这个:

setlocal enabledelayedexpansion
FOR /R "C:\Users" %%G IN (*.*) do set /a size = !size! + %%~zG

在 for 循环中,您不能正常引用环境变量。

编辑:

才意识到我们在使用set /a !!!!!!!

FOR /R "C:\Users" %%G IN (*.*) do set /a size+=%%~zG

更好的方法。

于 2013-11-03T03:01:02.910 回答