file - FOR/R - 使用 set/a [变量] = [变量] + %%~zA

标签 file batch-file

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

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

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

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

最佳答案

试试这个:

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

更好的方法。

关于file - FOR/R - 使用 set/a [变量] = [变量] + %%~zA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19749372/

相关文章:

python - 类文件对象的 `write` 方法返回什么?

c++ - "File could not be opened."C++ fstream

powershell - 从 PowerShell 打开并在 cmd 上运行命令

batch-file - 如何从批处理变量中删除换行符

java - 将常规数据保存到文件

php - 通过单击按钮或链接(javascript 和/或 php?)将服务器端文件设置为输入文件类型的值

spring - 通过 Annotation 填充 Spring Bean 的 File 字段

windows - 访问文件夹时运行的批处理文件

batch-file - TYPE 命令问题 - 批处理文件

mysql - 在文本文件中存储批处理脚本的时间和错误