2013-07-18 3 views
1

Я хочу 2 типа списков Первый список с типами, например, ежедневно и релиз, а второй тип с путями для первого списка. После этого я хочу динамически просматривать списки второго типа на основе первого типа.Динамический набор в партиях

Нечто подобное:

@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. 

И с вне secound его за:

(path1 path2) 
ECHO is off (OFF). 
(path23 path24) 
ECHO is off (OFF). 

Может мне кто-нибудь объяснить мне, почему то будет синтаксическая ошибка и почему я могу скопировать содержимое из Tagets%! % п! в другую переменную ??

ответ

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.

+0

большое спасибо. Это Меенса для путей с пробелами этого: 'code' SET "TagetsRelease =" C: \ Hello World \ test23.txt " "C: \ Hello World \ test24.txt"" Или есть что-то неправильно ? – Heinrich

+0

вы можете использовать файл 'set '= C: \ hello world \ test.txt" ' – Endoro

Смежные вопросы