扩展变量未评估

时间:2013-11-25 17:22:50

标签: batch-file

在下面的例程中,我试图使用变量作为数字来扩展byt变量。出于某种原因,它没有扩大。我已经尝试过各种各样的通话设置,并将我能想到的!!加倍。希望这是我想念的简单事情。

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

1 个答案:

答案 0 :(得分:3)

endlocal引用之后移动!...! - 此类引用只会在enabledelayedexpansion生效时展开。