2016-05-19 5 views

答えて

1
@echo off 
set "A=1,2,3" 
set "B=A,B,C" 
setlocal enableDelayedExpansion 
for %%Z in (%A%) do (
    set flag=1 
    for %%Y in (%B%) do (
     if !flag! == 1 (
     echo [%%Z,%%Y] 
     set flag=0 
    ) 
    ) 
) 

いくつかのネストなしでは実行できません。私は角カッコが普通のもので逃げるのを避けるために好ましかった。

3

この方法は、任意の数の同時セットで使用できます。

@echo off 
setlocal EnableDelayedExpansion 

set "A=1,2,3" 
set "B=A,B,C" 

rem Separate A set into individual array elements 
set i=0 
for %%a in (%A%) do (
    set /A i+=1 
    set "A[!i!]=%%a" 
) 

rem Separate B set into individual array elements 
set j=0 
for %%b in (%B%) do (
    set /A j+=1 
    set "B[!j!]=%%b" 
) 

if %i% neq %j% (
    echo A and B have not the same number of elements 
    goto :EOF 
) 

for /L %%i in (1,1,%i%) do echo (!A[%%i]!,!B[%%i]!) 

アレイ管理の詳細については、this postのバッチファイルを参照してください。


もう一つ、おそらく簡単な方法:

@echo off 
setlocal EnableDelayedExpansion 

set "A=1,2,3" 
set "B=A,B,C" 

(for %%a in (%A%) do echo %%a) > A.txt 
< A.txt (
    for %%b in (%B%) do (
     set /P "A=" 
     echo [!A!,%%b] 
    ) 
) 
関連する問題