用于获取文件大小的批处理脚本

时间:2017-02-02 10:05:57

标签: batch-file

我编写了一个批处理脚本来获取文件大小并将其转储到.csv文件中。但是脚本没有发布大于2GB的文件的任何数据。我被困在set targetDBSize函数中。有人可以帮我这个吗?

以下是剧本:

set targetDBSize=

for %%G in ("\\opsprddb01\c$\Progra~1\Micros~1\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\%targetSite%.mdf") 

do set /A targetDBSize=%%~zG/1024/1024

谢谢,

格利扬

1 个答案:

答案 0 :(得分:0)

你有算术溢出。尝试执行此操作:

SET /A targetDBSize = 2147483647+1

算术是通过32位有符号整数完成的,因此可以安全显示的最大文件大小为2 ^ 31-1 = 2147483647

<强> SOLUTION:

与Powershell结合使用

for /f %%N in ('powershell %~z2/1024/1024/1024') do set len=%%N

它有效,但速度不是很快。用一种可以使用像VBScript of JavaScript这样的浮点的语言来编写自己的脚本会更容易。