|
没有什么诡异的,是你的set用法不对。。。
set /a a=%%i 得到的是带千分位分隔符的值
例如:%%i值为1,024,那么 set /a a=%%i 就等于 set/a a=1,024
也就相当于 set/a a=1,b=024 将 "b=" 省略后的结果
set/a a=1,024就是将1赋值给a,024(8进制)赋给空变量
(其中的","是set/a特有的表达式分隔符,意思是 set/a a=1&set/a b=024)
所以得到的a值为1,而不是1024
改成这样子应该可以:
-----------------------------分割线-----------------------------------
@echo off
if exist lininput_xeon64 del /f /q lininput_xeon64
for /f "tokens=4 delims= " %%i in ('systeminfo^|find "Total Physical Memory"') do (
set a=%%i
)
set a=%a:,=%
set/a a*=10000,b=a
for /l %%a in (1,1,100) do set /a b=(b+a/b)/2
echo %b:~,-2%
pause
-----------------------------分割线-----------------------------------
PS:请不要给我发短消息,谢谢!
[ 本帖最后由 pznpt 于 2012-9-11 22:08 编辑 ] |
|