【发布时间】:2015-01-10 14:59:01
【问题描述】:
我正在使用批处理程序来获取文件的大小,我遇到了一个问题,当大小超过一定数量的字节时,它会出现一个错误,指出数字限制为 32 位精度.我已经尝试通过将其设置为 kibobits 和 mebibits 来解决此问题,但是一旦程序确定文件具有特定大小,它就会拒绝执行任何操作。
@echo off
set kbno=0
set mbno=0
set var=(this would be the output of the file size)
:kbcheck
if /i %var% GTR 1024 (
goto 10kbcheck
) else (
goto setsize
)
:10kbcheck
if /i %var% GTR 10240 (
goto 50kbcheck
) else (
set /a kbno+=1
set /a var=%var%-1024
goto kbcheck
)
:50kbcheck
if /i %var% GTR 51200 (
goto 100kbcheck
) else (
set /a kbno+=10
set /a var=%var%-10240
goto kbcheck
)
:100kbcheck
if /i %var% GTR 102400 (
goto 500kbcheck
) else (
set /a kbno+=50
set /a var=%var%-51200
goto kbcheck
)
:500kbcheck
if /i %var% GTR 512000 (
goto mbcheck
) else (
set /a kbno+=100
set /a var=%var%-102400
goto kbcheck
)
:mbcheck
if /i %var% GTR 1048576 (
set /a mbno+=1
set /a var=%var%-1048576
goto kbcheck
) else (
set /a kbno+=500
set /a var=%var%-512000
goto kbcheck
)
:setsize
set size=%var%
echo %mbno% mebibits %kbno% kibibits %size% bits
pause
但是这个错误几乎使这个没用
【问题讨论】:
-
你能给我们一个你的代码的sn-p吗?
-
嗯“批处理文件”并没有真正指定我们正在谈论的脚本类型。另外,一些代码会很好。
-
@MarcusMüller - Stack Overflow 上的“批处理文件”指的是 Windows 命令语言。阅读标签。
-
您使用的是什么操作系统?您可能可以在批处理代码中添加 PowerShell 单行代码,因为它可以处理比批处理上限 2^32 大得多的数字。
-
@SomethingDark Windows 7
标签: file batch-file size byte