【发布时间】:2014-05-29 06:51:41
【问题描述】:
所以我的代码是
FOR %%a IN (a b c) DO (FOR %%b IN (x y z) DO (echo %%a %%b &pause>nul))
但输出是
ax ay az bx by bz cx cy cz
我希望每个循环中的一个变量为 ax by cz 并注意其他,请找到它。
【问题讨论】:
标签: loops batch-file repeat
所以我的代码是
FOR %%a IN (a b c) DO (FOR %%b IN (x y z) DO (echo %%a %%b &pause>nul))
但输出是
ax ay az bx by bz cx cy cz
我希望每个循环中的一个变量为 ax by cz 并注意其他,请找到它。
【问题讨论】:
标签: loops batch-file repeat
@echo off
setlocal EnableDelayedExpansion
rem Define first and second arrays
set i=0
for %%a in (a b c) do (
set /A i+=1
set first[!i!]=%%a
)
set i=0
for %%a in (x y z) do (
set /A i+=1
set second[!i!]=%%a
)
rem Show elements in both arrays with the same index
for /L %%i in (1,1,%i%) do echo !first[%%i]!!second[%%i]!
没有数组的相同过程:
@echo off
setlocal EnableDelayedExpansion
set i=0
for %%a in (a b c) do (
set /A i+=1
set j=0
for %%b in (x y z) do (
set /A j+=1
if !i! equ !j! echo %%a%%b
)
)
【讨论】:
你做错了....尝试使用 1 1 3 的序列,其中一个是步长,这样 1 1 3 会生成 1 2 3... 代码如下
@echo off
For /L %%n in (1 1 3) do (
For %%c in (a b c) do (
Echo %%c%%n
)
)
Pause>null
【讨论】:
类似这样的:
@echo off
setlocal enabledelayedexpansion
set /A CNT=1
FOR %%a IN (a b c) DO (echo %%a !Cnt! &set /A Cnt+=1 &pause>nul)
【讨论】:
@echo off
setlocal enabledelayedexpansion
set "a=cat dog horse"
set "b=bad little big"
:loop
set /a i+=1
set "x="
for /f "tokens=%i%" %%a in ("%b%") do set "x=%%a"<nul
if "%x%"=="" goto :eof
for /f "tokens=%i%" %%b in ("%a%") do ( echo %x% %%b)
goto :loop
【讨论】: