[已解决]批处理查看文件大小的字节怎样转换成KB和MB?

[已解决]批处理查看文件大小的字节怎样转换成KB和MB?


批处理代码:


    @echo off
    for /f "tokens=* delims=" %%a in ('dir /s /b "ForBruteIp.txt"') do (set T=%%~za)
    echo 文件大小为:%T%KB
    pause

复制代码

这个批处理实际显示的是Byte字节而不是KB,请问如何修改成显示的是KB和MB呢?
也就是
echo 文件大小为:%T%KB
echo 文件大小为:%T%MB

1

评分人数

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

收藏
分享
    

    
CrLf

论坛巡查

Rank: 8Rank: 8

帖子
    6061
积分
    18129
技术
    868  
捐助
    100  
注册时间
    2010-10-9

    
2楼
发表于 2011-5-22 14:52 | 只看该作者
本帖最后由 zm900612 于 2011-5-22 21:31 编辑

    @echo off&setlocal enabledelayedexpansion
    for /r %%a in ("ForBruteIp.txt") do (
       set /a k=%%~za/1024,m=k/1024
       echo 文件大小为:!k!KB !m!MB
    )
    pause

复制代码

顺便说一句,楼主好像没吧代码用[@code][@/code](去掉@)框起来
链接:批处理之家 js 在线脚本库   bat、vbs、js 原生混编
    

TOP
    
wh1234567

上尉

Rank: 5Rank: 5

帖子
    440
积分
    1168
技术
    1  
捐助
    0  
注册时间
    2009-5-28

    
3楼
发表于 2011-5-22 21:05 | 只看该作者
本帖最后由 wh1234567 于 2011-5-22 21:10 编辑


要求不将echo这个括号,你这代码不符合要求,再说这个代码无效果啊,兄弟,再修改一下吧
要求:以下代码在括号外面的,而不是被括号包括的
echo 文件大小为:%T%KB
echo 文件大小为:%T%MB
    

TOP
    
CrLf

论坛巡查

Rank: 8Rank: 8

帖子
    6061
积分
    18129
技术
    868  
捐助
    100  
注册时间
    2010-10-9

    
4楼
发表于 2011-5-22 21:31 | 只看该作者
把set 改成set/a就行了,已修正。
放在括号外不严谨,可能会丢失信息。
链接:批处理之家 js 在线脚本库   bat、vbs、js 原生混编
    

TOP
    
wh1234567

上尉

Rank: 5Rank: 5

帖子
    440
积分
    1168
技术
    1  
捐助
    0  
注册时间
    2009-5-28

    
5楼
发表于 2011-5-22 21:53 | 只看该作者

    把set 改成set/a就行了,已修正。
    放在括号外不严谨,可能会丢失信息。
    zm900612 发表于 2011-5-22 21:31


要求不将echo这个括号,你这代码不符合要求,再说这个代码无效果啊,兄弟,再修改一下吧
要求:以下代码在括号外面的,而不是被括号包括的
echo 文件大小为:%T%KB
echo 文件大小为:%T%MB
wh1234567 发表于 2011-5-22 21:05
修改后也还是不对!
    

TOP
    
batman

超级版主

Rank: 8Rank: 8

帖子
    2704
积分
    14544
技术
    171  
捐助
    630  
注册时间
    2008-6-15

    
6楼
发表于 2011-5-23 00:06 | 只看该作者
头痛的浮点计算,还是调用vbs吧:

    @echo off
    if "%1" neq "" goto next
    for %%a in (ForBruteIp.txt) do set "k=%%~za"
    mshta vbscript:createobject("wscript.shell").run("%~fs0 "^&round(%k%/1024,4)^&" "^&round(%k%/1024/1024,4))(window.close)
    goto :eof
    :next
    setlocal enabledelayedexpansion
    set "k1=%1"&set "k2=%2"
    for %%a in (k1 k2) do if "!%%a:~,1!" equ "." set %%a=0!%%a!
    echo 文件大小为%k1%kb %k2%M
    pause>nul

复制代码

***共同提高***
    

TOP
    
wh1234567

上尉

Rank: 5Rank: 5

帖子
    440
积分
    1168
技术
    1  
捐助
    0  
注册时间
    2009-5-28

    
7楼
发表于 2011-5-23 00:48 | 只看该作者
本帖最后由 wh1234567 于 2011-5-23 01:13 编辑


能不能修改成查看的文件如果是KB的就显示KB,如果是MB的就显示MB,如果是字节的就显示的是字节,就像电脑里其他文件鼠标点击查看的那种效果?
另外反馈一下,要是改成小数点后为2位的话好像计算的不够准确
    

TOP
    
wh1234567

上尉

Rank: 5Rank: 5

帖子
    440
积分
    1168
技术
    1  
捐助
    0  
注册时间
    2009-5-28

    
8楼
发表于 2011-5-23 00:52 | 只看该作者
能用bat处理是最好不过了,呵呵
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值