我编写了一个批处理脚本来获取文件大小并将其转储到.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
谢谢,
格利扬
答案 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这样的浮点的语言来编写自己的脚本会更容易。