FOR / R - 使用set / a [variable] = [variable] + %% ~zA

时间:2013-11-03 02:54:05

标签: file batch-file

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

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

我希望该命令在循环时使用%size%+ %%!zG,但是当我运行批处理文件时,输出不断将“%size%”设置为0.我希望拥有所有文件搜索到的大小加起来,而不仅仅是停留0.最后会发生什么,%size%被设置为最后一个文件“扫描”。

由于某种原因它不断地说“0”并且它不会加起来每个“循环”。谢谢!所有回复都表示赞赏。

1 个答案:

答案 0 :(得分: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

更好的方法。