这里有很多有关Windowsbatch file中variables内部variables的主题,我试图理解它们。 所以我最终得到这个代码,但看起来像是在一个无限循环:
setlocal enabledelayedexpansion for /l %%a in (RPR SAM) do ( for /l %%w in (000 iso pic) do ( set /aa!w!=H:\MyPath\!%%a\!%%a!%%w ) )
结果应该是以下variables:
RPR000=H:\MyPath\RPR\RPR000 RPRiso=H:\MyPath\RPR\RPRiso RPRpic=H:\MyPath\RPR\RPRpic SAM000=H:\MyPath\SAM\SAM000 SAMiso=H:\MyPath\SAM\SAMiso SAMpic=H:\MyPath\SAM\SAMpic
我做错了什么,或者甚至有可能?
这是你期望的事情吗?
@echo off for %%a in (RPR SAM) do ( for %%w in (000 iso pic) do ( set zzz%%a%%w=H:\MyPath\%%a\%%a%%w ) ) set zzz pause
@echo off set /aa=0 :@ if 1%1==1 ( set Last=%0 GOTO :@@ ) set VarB=%VarB% %1 @shift goto :@ :@@ set /aa=%a%+1 FOR /F "TOKENS=%a%* DELIMS= " %%G IN ('echo %VarB%') do ( FOR /F "TOKENS=1 DELIMS= " %%A IN ('echo %%G') do ( set Var%a%=%%G set VarA%a%=%%H set VarR=%%G ) ) if 1%VarR%==1%Last% goto :A goto :@@ :A echo |echo %%Var%a%%% REM In Batch Scripts use Double Percent on the outside like dealing with a for statement. REM In CMD.exe just use echo [The Character Pipe] echo %Var%a%% exit