2013-11-25 184 views
2

在下面的例程中,我试图让变量使用变量来展开数字。出于某种原因,它并没有扩大。我已经尝试了各种呼叫设置,并将!!加倍!!我能想到的。希望这是简单的我错过了。扩展变量不评估

call :ConvertBytes 10200300200 MB ret 
echo %ret% MB 
exit /b 

:ConvertBytes bytes unit ret 
setlocal enabledelayedexpansion 
set byt=%1 
if "%~2" EQU "KB" set val=3 
if "%~2" EQU "MB" set val=6 
if "%~2" EQU "GB" set val=9 
if "%~2" EQU "TB" set val=12 
endlocal & for %%a in (%val%) do (
    echo !byt:~-%%a!) 
exit /b 

回答

3

移动endlocal后的!...!参考 - 这种提法只会扩大而enabledelayedexpansion生效。

+0

谢谢!我知道这是我错过的简单事情。 –