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

[文件操作] [已解决]批处理如何以MB为单位批量提取文件大小及文件名?

“dir >a.txt”可以将目录下文件的修改日期、大小、文件名发送至文本文档a中。

1.里面的文件大小的单位使用的是字节,如果想让它以MB的方式显示,且按文件大小升序排列在文本文档a中,代码该如何写?
2.如果只想在文本文档a显示文件名和文件大小,大小以MB显示,且按文件大小升序排列,代码又该如何写?

希望懂行的热心人能指点一下!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 dragon631 于 2015-6-3 18:00 编辑

回复 2# pcl_test

::最大文件大小不超过2G的可以这样
@echo off & setlocal enabledelayedexpansion
(for /f "delims=" %%a in ('dir /a-d /b /o^|find /i /v "%~nx0"') do set /a size=%%~za/1048576 2>nul&&echo;%%a !size!MB)>"文件名及大小.txt"
pause

这个代码让文件以拼音首字母顺序排列。

TOP

本帖最后由 dragon631 于 2015-6-2 23:20 编辑

回复 4# pcl_test

刚在边测试边百度,边修改回复内容,实际上,上面的代码是让它文件首拼音排列的!

原代码对于电影这些个大文件用起来比较顺手,对于图片这些稍小的文件就有点不适用了,所以,原代码的基础上,稍微变动了下,让它以KB显示

::最大文件大小不超过2G的可以这样
@echo off & setlocal enabledelayedexpansion
(for /f "delims=" %%a in ('dir /a-d /b /os^|find /i /v "%~nx0"') do set /a size=%%~za/1024 2>nul&&echo;%%a !size!KB)>"文件名及大小.txt"
pause

还有其它地方需要变动了吗?

TOP

本帖最后由 dragon631 于 2015-6-3 04:37 编辑

回复 6# pcl_test

这个兼顾到了字节、KB、MB,已经很不错了!
能不能再加上超过1GB的,单位使用GB?并且MB和GB单位后面带两位小数点?因为这样子显示出来的话,更符合实际情况!

TOP

本帖最后由 pcl_test 于 2016-8-10 18:16 编辑

回复 8# terse
            WSH.Echo(arr[0],'\t' + size,' 字节');


在你代码的基础上,稍微变动了下,KB在电脑中显示的就是整数,所以,就让它取整数;Byte在电脑中显示的是“字节”,所以,“Byte”改成了“字节”
这个代码,是以文件大小排列的TXT文档中,能让它按首拼音来排序吗?

TOP

返回列表