【问题标题】:Batch FOR loop variable repeat批量 FOR 循环变量重复
【发布时间】: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


    【解决方案1】:
    @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
       )
    )
    

    【讨论】:

      【解决方案2】:

      你做错了....尝试使用 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
      

      【讨论】:

        【解决方案3】:

        类似这样的:

        @echo off
        setlocal enabledelayedexpansion
        set /A CNT=1
        FOR %%a IN (a b c) DO (echo %%a !Cnt! &set /A Cnt+=1 &pause>nul)
        

        【讨论】:

        • 请澄清您的帖子。
        • for %%a in (a b c) do (for %%b in (x y z) do (echo %%a %%b)) 输出必须是 ax by cz,
        【解决方案4】:
        @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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-04-05
          • 1970-01-01
          • 1970-01-01
          • 2014-08-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多