2013-11-25 223 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

謝謝!我知道這是我錯過的簡單事情。 –