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

[文件操作] 批处理BAT如何提取文件大小?

某目录下存在很多名称不相同的文件,但是相同名称存在不同格式;
例如:
123456.txt
123456.doc
123456.xls
654321.txt
654321.doc
654321.doc
……
现在提取相同名称文件的大小:123456.*的文件大小654321.*的文件大小……求各位大神指导

FOR   %%~zi  扩张到文件大小

TOP

系统默认就是按文件名排序的,所以...
  1. for %%a in (*) do echo %%a 大小为: %%~za
复制代码
如果非要按一组一组显示,可以这样:
  1. @echo off
  2. for %%a in (*.txt) do (
  3.    echo %%~na.*------------
  4.    for %%b in ("%%~na.*") do echo %%~xb 大小为:%%~zb
  5. )
  6. pause
复制代码
1

评分人数

TOP

回复 3# CrLf 我想将名字相同格式不同的大小去和,在这基础上怎么改,谢谢

TOP

回复 3# CrLf 文件名相同格式不同文件大小求和

TOP

回复 3# CrLf 这提取文件大小单位是什么?字节?

TOP

回复 3# CrLf 怎么输出到文本

TOP

回复 7# wang5185244


输出重定向
http://bbs.bathome.net/thread-2516-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 apang 于 2014-5-14 13:35 编辑

保存为test.vbs,更改第一行路径为实际路径
  1. path = "d:\Test"
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. Set dic = CreateObject("Scripting.Dictionary")
  4. For Each f in fso.GetFolder(path).Files
  5.     strName = LCase(fso.GetBaseName(f))
  6.     If dic.Exists(strName) Then
  7.         dic.Item(strName) = dic.Item(strName) + f.Size
  8.     Else
  9.         dic.Add strName, f.Size
  10.     End If
  11. Next
  12. For Each a in dic.Keys
  13.     s = s & a & ".*" & vbTab & dic.Item(a) & " Byte" & vbCrLf
  14. Next
  15. fso.CreateTextFile("Result.txt", true).Write s
  16. CreateObject("WScript.Shell").Run "NotePad Result.txt"
复制代码

TOP

回复 9# apang


    如果是其他格式呢?

TOP

返回列表