Board logo

标题: [文件操作] [已解决]批处理如何批量读取文件夹大小? [打印本页]

作者: liaoguinan    时间: 2024-8-21 20:38     标题: [已解决]批处理如何批量读取文件夹大小?

本帖最后由 liaoguinan 于 2024-8-23 21:41 编辑

D:\测试\1
D:\测试\2
D:\测试\3
D:\测试\4\2
..........
如上面文件夹例子可能会存在多层文件夹,如何批量检测D盘下的“
测试”文件夹里的所有子文件夹里的文件大小总大小并把结果保存记事本里
作者: aloha20200628    时间: 2024-8-21 23:43

本帖最后由 aloha20200628 于 2024-8-22 10:44 编辑

回复 1# liaoguinan

直接从 dir/s/-c/a-d 列表中截取
以下代码在 "测试" 文件夹下运行...
  1. dir/s/-c/a-d|findstr /re /c:" 的目录" /c:" [ 0-9]* 字节">"全部子目录文件大小统计.txt"
复制代码

作者: liaoguinan    时间: 2024-8-22 21:45

回复 2# aloha20200628


    这个单位字节能改成MB吗?
作者: aloha20200628    时间: 2024-8-22 22:47

本帖最后由 aloha20200628 于 2024-8-23 21:25 编辑

回复 3# liaoguinan

以下代码存为 test.bat 在 "测试" 文件夹下运行...
  1. @echo off &setlocal &set "F=全部子目录文件大小统计.txt"
  2. dir/s/-c/a-d|findstr /re /c:" 的目录" /c:" [ 0-9]* 字节">"0.0"
  3. powershell "gc 0.0|%%{$a=$_.split(' ');if($a[-1] -eq '字节'){$a[-2]=[math]::round($a[-2]/1mb);$a[-1]='MB'};(($a -join ' ') -replace '[ ]+',' ')}">"%F%"
  4. del /q "0.0" &endlocal &pause &exit/b
复制代码

作者: liaoguinan    时间: 2024-8-23 20:29

回复 4# aloha20200628


    所在位置 行:1 字符: 38
+ gc 0.0|:round($a[-2]/1mb);$a[-1]='MB'};(($a -join ' ') -replace '[ ]+ ...
+                                      ~
表达式或语句中包含意外的标记“}”。
所在位置 行:1 字符: 76
+ ... :round($a[-2]/1mb);$a[-1]='MB'};(($a -join ' ') -replace '[ ]+',' ')}
+                                                                         ~
表达式或语句中包含意外的标记“}”。
    + CategoryInfo          : ParserError: ( [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken
作者: aloha20200628    时间: 2024-8-23 21:21

本帖最后由 aloha20200628 于 2024-8-23 21:37 编辑

回复 5# liaoguinan

一不小心就漏写了 ‘%%’   4楼代码已订正...





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2