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

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

批处理代码:
  1. @echo off
  2. for /f "tokens=* delims=" %%a in ('dir /s /b "ForBruteIp.txt"') do (set T=%%~za)
  3. echo 文件大小为:%T%KB
  4. pause
复制代码
这个批处理实际显示的是Byte字节而不是KB,请问如何修改成显示的是KB和MB呢?
也就是
echo 文件大小为:%T%KB
echo 文件大小为:%T%MB
1

评分人数

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

本帖最后由 zm900612 于 2011-5-22 21:31 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%a in ("ForBruteIp.txt") do (
  3.    set /a k=%%~za/1024,m=k/1024
  4.    echo 文件大小为:!k!KB !m!MB
  5. )
  6. pause
复制代码
顺便说一句,楼主好像没吧代码用[@code][@/code](去掉@)框起来

TOP

本帖最后由 wh1234567 于 2011-5-22 21:10 编辑

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

TOP

把set 改成set/a就行了,已修正。
放在括号外不严谨,可能会丢失信息。

TOP

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

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

TOP

头痛的浮点计算,还是调用vbs吧:
  1. @echo off
  2. if "%1" neq "" goto next
  3. for %%a in (ForBruteIp.txt) do set "k=%%~za"
  4. mshta vbscript:createobject("wscript.shell").run("%~fs0 "^&round(%k%/1024,4)^&" "^&round(%k%/1024/1024,4))(window.close)
  5. goto :eof
  6. :next
  7. setlocal enabledelayedexpansion
  8. set "k1=%1"&set "k2=%2"
  9. for %%a in (k1 k2) do if "!%%a:~,1!" equ "." set %%a=0!%%a!
  10. echo 文件大小为%k1%kb %k2%M
  11. pause>nul
复制代码
***共同提高***

TOP

本帖最后由 wh1234567 于 2011-5-23 01:13 编辑

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

TOP

能用bat处理是最好不过了,呵呵

TOP

返回列表