标题: [文本处理] [已解决]批处理查看文件大小的字节怎样转换成KB和MB? [打印本页]
作者: wh1234567 时间: 2011-5-22 14:43 标题: [已解决]批处理查看文件大小的字节怎样转换成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
作者: CrLf 时间: 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](去掉@)框起来
作者: wh1234567 时间: 2011-5-22 21:05
本帖最后由 wh1234567 于 2011-5-22 21:10 编辑
要求不将echo这个括号,你这代码不符合要求,再说这个代码无效果啊,兄弟,再修改一下吧
要求:以下代码在括号外面的,而不是被括号包括的
echo 文件大小为:%T%KB
echo 文件大小为:%T%MB
作者: CrLf 时间: 2011-5-22 21:31
把set 改成set/a就行了,已修正。
放在括号外不严谨,可能会丢失信息。
作者: wh1234567 时间: 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
修改后也还是不对!
作者: batman 时间: 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
复制代码
作者: wh1234567 时间: 2011-5-23 00:48
本帖最后由 wh1234567 于 2011-5-23 01:13 编辑
能不能修改成查看的文件如果是KB的就显示KB,如果是MB的就显示MB,如果是字节的就显示的是字节,就像电脑里其他文件鼠标点击查看的那种效果?
另外反馈一下,要是改成小数点后为2位的话好像计算的不够准确
作者: wh1234567 时间: 2011-5-23 00:52
能用bat处理是最好不过了,呵呵
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |