[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理如何批量读取文件夹大小?

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

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

本帖最后由 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"
复制代码

TOP

回复 2# aloha20200628


    这个单位字节能改成MB吗?

TOP

本帖最后由 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
复制代码
1

评分人数

TOP

回复 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

TOP

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

回复 5# liaoguinan

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

TOP

返回列表