Board logo

标题: [讨论]变量最大长度是多少 [打印本页]

作者: btpg     时间: 2010-5-7 06:20    标题: [讨论]变量最大长度是多少


@echo off&color a&mode con cols=32 lines=15
setlocal enabledelayedexpansion
for /l %%a in (0 1 100000000000) do if "%a%"=="" (set a=%%a) else (set a=!a!%%a||(echo %%a&goto :next))
:next
pause
我想知道变量可存储的最大字符长度,于是设计了上面的程序,来试验,可是运行了好久也不见结果,请问:1.变量最多可容纳多少位字符
                              2.怎么弄才能计算出变量的存储最大位数

另外,如果上面的程序有问题,请指明一下,小弟不胜感激
作者: btpg     时间: 2010-5-7 06:44

@echo off&color a&mode con cols=32 lines=15
set /a a=0
set b=a
:begin
set b=%b%%b%&&(set /a a+=2)||(goto :end)&goto :begin
:end
set c=1
for /l %%a in (1 1 %a%) do set /a c*=2
echo %c%
pause
我换了一个进行来测试,可是执行失败,说是”输入行太长。
此时不应有 :begin。“
我知道会超出变量存储长度,但是为什么提示“此时不应有 :begin。”呢
作者: Hanyeguxing     时间: 2010-5-7 07:31
1,xp下:
最大单个环境变量大小为 8192 字节。
所有变量的最大环境变量的总和大小(包括变量名和等号)为 65,536 KB。
2,
(echo %%a&goto :next)括号错了
(goto :end)括号错了
3,
(goto :end)&goto :begin语法错误

[ Last edited by Hanyeguxing on 2010-5-7 at 08:02 ]
作者: HAT     时间: 2010-5-7 14:26
允许定义的变量上限
http://www.bathome.net/viewthread.php?tid=3403#pid21404
作者: btpg     时间: 2010-5-10 16:47
终于弄清楚了