在下面的例程中,我试图使用变量作为数字来扩展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
答案 0 :(得分:3)
在endlocal
引用之后移动!...!
- 此类引用只会在enabledelayedexpansion
生效时展开。