Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Вложенный цикл в цикле (http://forum.oszone.net/showthread.php?t=249157)

etherlord 14-12-2012 18:18 2045363

Вложенный цикл в цикле
 
помогите сделать такую конструкцию
for %%a in (aParam1 aParam2 aParam3) do
for %%b in (bParam1 bParam2 bParam3) do
for %%c in (cParam1 cParam2 cParam3) do
echo %%a %%b %%c

т.е. на выходе должно получиться 9 строчек текста.
я уже думал через CALL сделать, все равно как-то не выходит.

kiripanda 14-12-2012 18:33 2045373

Код:

@echo off &setlocal enableextensions

for %%a in (a1 a2 a3) do (
        for %%b in (b1 b2 b3) do (
                for %%c in (c1 c2 c3) do (
                        echo %%a %%b %%c
                )
        echo.
        )
)

только не 9, а 27

etherlord 14-12-2012 18:40 2045376

Цитата:

Цитата kiripanda
только не 9, а 27 »

извиняюсь, совсем задурил себе голову.
Нашел вот такое решение:


:ZIPl
for %%A in (aParam1 aParam2 aParam3) do call :VCl %%A
goto :EOF

:VCl
for %%B in (bParam1 bParam2 bParam3) do call :NUMBER %1 %%B
exit /b

:NUMBER
for %%C in (cParam1 cParam2 cParam3) do (
rem echo %1 %2 %%C
echo echo vc%2-%%C ^>^> log.txt >> olymp.txt
echo copy \\dc01\Olimpiada\%1 \\vc%2-%%C\c$\ ^>^> log.txt >> olymp.txt
)
exit /b

у меня не получалось так сделать, это из за этого?
Цитата:

Цитата kiripanda
@echo off &setlocal enableextensions »

и можно вопроc по перебору простых чисел, как строчку из C
for (i=1,i<n,i++) перевести сюда?
Собственно нужно что-бы вместо 1 из параметров шли числа
for %%C in (from 1 to 10) - что-то в этом роде

kiripanda 14-12-2012 20:19 2045415

Цитата:

у меня не получалось так сделать
получается
Код:

echo vcbParam1-cParam1 >> log.txt
copy \\dc01\Olimpiada\aParam1 \\vcbParam1-cParam1\c$\ >> log.txt
echo vcbParam1-cParam2 >> log.txt
copy \\dc01\Olimpiada\aParam1 \\vcbParam1-cParam2\c$\ >> log.txt
echo vcbParam1-cParam3 >> log.txt
copy \\dc01\Olimpiada\aParam1 \\vcbParam1-cParam3\c$\ >> log.txt
echo vcbParam2-cParam1 >> log.txt
copy \\dc01\Olimpiada\aParam1 \\vcbParam2-cParam1\c$\ >> log.txt
echo vcbParam2-cParam2 >> log.txt
copy \\dc01\Olimpiada\aParam1 \\vcbParam2-cParam2\c$\ >> log.txt
echo vcbParam2-cParam3 >> log.txt
copy \\dc01\Olimpiada\aParam1 \\vcbParam2-cParam3\c$\ >> log.txt
echo vcbParam3-cParam1 >> log.txt
copy \\dc01\Olimpiada\aParam1 \\vcbParam3-cParam1\c$\ >> log.txt
echo vcbParam3-cParam2 >> log.txt
copy \\dc01\Olimpiada\aParam1 \\vcbParam3-cParam2\c$\ >> log.txt
echo vcbParam3-cParam3 >> log.txt
copy \\dc01\Olimpiada\aParam1 \\vcbParam3-cParam3\c$\ >> log.txt
echo vcbParam1-cParam1 >> log.txt
copy \\dc01\Olimpiada\aParam2 \\vcbParam1-cParam1\c$\ >> log.txt
echo vcbParam1-cParam2 >> log.txt
copy \\dc01\Olimpiada\aParam2 \\vcbParam1-cParam2\c$\ >> log.txt
echo vcbParam1-cParam3 >> log.txt
copy \\dc01\Olimpiada\aParam2 \\vcbParam1-cParam3\c$\ >> log.txt
echo vcbParam2-cParam1 >> log.txt
copy \\dc01\Olimpiada\aParam2 \\vcbParam2-cParam1\c$\ >> log.txt
echo vcbParam2-cParam2 >> log.txt
copy \\dc01\Olimpiada\aParam2 \\vcbParam2-cParam2\c$\ >> log.txt
echo vcbParam2-cParam3 >> log.txt
copy \\dc01\Olimpiada\aParam2 \\vcbParam2-cParam3\c$\ >> log.txt
echo vcbParam3-cParam1 >> log.txt
copy \\dc01\Olimpiada\aParam2 \\vcbParam3-cParam1\c$\ >> log.txt
echo vcbParam3-cParam2 >> log.txt
copy \\dc01\Olimpiada\aParam2 \\vcbParam3-cParam2\c$\ >> log.txt
echo vcbParam3-cParam3 >> log.txt
copy \\dc01\Olimpiada\aParam2 \\vcbParam3-cParam3\c$\ >> log.txt
echo vcbParam1-cParam1 >> log.txt
copy \\dc01\Olimpiada\aParam3 \\vcbParam1-cParam1\c$\ >> log.txt
echo vcbParam1-cParam2 >> log.txt
copy \\dc01\Olimpiada\aParam3 \\vcbParam1-cParam2\c$\ >> log.txt
echo vcbParam1-cParam3 >> log.txt
copy \\dc01\Olimpiada\aParam3 \\vcbParam1-cParam3\c$\ >> log.txt
echo vcbParam2-cParam1 >> log.txt
copy \\dc01\Olimpiada\aParam3 \\vcbParam2-cParam1\c$\ >> log.txt
echo vcbParam2-cParam2 >> log.txt
copy \\dc01\Olimpiada\aParam3 \\vcbParam2-cParam2\c$\ >> log.txt
echo vcbParam2-cParam3 >> log.txt
copy \\dc01\Olimpiada\aParam3 \\vcbParam2-cParam3\c$\ >> log.txt
echo vcbParam3-cParam1 >> log.txt
copy \\dc01\Olimpiada\aParam3 \\vcbParam3-cParam1\c$\ >> log.txt
echo vcbParam3-cParam2 >> log.txt
copy \\dc01\Olimpiada\aParam3 \\vcbParam3-cParam2\c$\ >> log.txt
echo vcbParam3-cParam3 >> log.txt
copy \\dc01\Olimpiada\aParam3 \\vcbParam3-cParam3\c$\ >> log.txt

Цитата:

for (i=1,i<n,i++)
Цитата:

Цитата FOR /?
FOR /L %переменная IN (начало,шаг,конец) DO команда [параметры]

Набор раскрывается в последовательность чисел с заданными началом, концом
и шагом приращения. Так, набор (1,1,5) раскрывается в (1 2 3 4 5),
а набор (5,-1,1) заменяется на (5 4 3 2 1)


shadowbat 27-04-2023 06:03 3008169

Цитата:

Цитата kiripanda
&setlocal enableextensions »

для чего эта команда в коде циклов?
они работают и без неё


Время: 07:52.

Время: 07:52.
© OSzone.net 2001-