我想要两种类型的列表 第一个列表包含例如daily和release的类型,第二个类型包含第一个列表的路径。 之后我想动态地根据第一个类型列表浏览第二个类型列表。
类似的东西:
@ECHO OFF
REM ##########
REM ## Test ##
REM ##########
SETLOCAL EnableDelayedExpansion
SET VersionType=(Daily Release)
SET TagetsDaily=(path1 path2)
SET TagetsRelease=(path23 path24)
FOR %%n IN %VersionType% DO (
ECHO !Tagets%%n!
SET test_temp=!Tagets%%n!
ECHO %test_temp%
FOR %%i !Tagets%%n! DO (
ECHO %%i
)
)
PAUSE
EXIT
此代码的问题在于它无效。
输出:
"!Tagets%n!" can be syntactically processed at this point.
并且没有了它的:
(path1 path2)
ECHO is off (OFF).
(path23 path24)
ECHO is off (OFF).
我可以解释一下为什么那是一个语法错误,为什么我可以复制内容!Tagets %% n!进入另一个变量??
答案 0 :(得分:2)
试试这个:
@ECHO OFF &SETLOCAL ENABLEDELAYEDEXPANSION
SET "VersionType=Daily Release"
SET "TagetsDaily=path1 path2"
SET "TagetsRelease=path23 path24"
FOR %%n IN (%VersionType%) DO (
ECHO !Tagets%%n!
SET test_temp=!Tagets%%n!
ECHO !test_temp!
FOR %%i IN (!Tagets%%n!) DO (
ECHO %%i
)
)
请查看for /?
和delayed expansion
。