[已解决]批处理查看文件大小的字节怎样转换成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处理是最好不过了,呵呵
批处理代码:
@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处理是最好不过了,呵呵