使用DIR命令列出文件时如何将文件大小以MB单位显示
直接可用的修改后批处理脚本
你可以直接复制以下代码替换你原有的脚本内容,保存为.bat文件后双击运行即可,输出的filelist.txt会自动显示文件名+MB为单位的大小(保留1位小数):
(@echo off & setlocal enabledelayedexpansion & (For /F "Delims=" %%A in ('dir /B/S/A-D') Do (set "size=%%~zA" & set /a "mb=size/1048576" & set /a "rem=size%%1048576/104858" & echo %%~fA !mb!.!rem MB)) >filelist.txt & endlocal)
Win10更简单的可选方案(PowerShell)
如果你不需要必须用批处理,Win10自带的PowerShell实现更简单,结果更准确,操作步骤如下:
- 打开你要遍历的目标文件夹,按住Shift后右键点击文件夹空白处,选择「在此处打开PowerShell窗口」
- 复制以下命令直接粘贴到PowerShell窗口回车,运行后同样会在当前文件夹生成
filelist.txt:Get-ChildItem -Recurse -File | Select-Object FullName, @{Name="大小(MB)";Expression={[math]::Round($_.Length / 1MB, 2)}} | Export-Csv -Path .\filelist.txt -NoTypeInformation -Encoding UTF8
该方案优势:
- 大小保留2位小数,精度更高
- 自动支持带特殊字符、空格的文件名
- 不会出现批处理可能遇到的中文乱码问题
内容的提问来源于stack exchange,提问作者Boris
相关产品推荐
相关产品推荐

