【问题标题】:Batch-Run FOR loop through cases.批量运行 FOR 循环遍历案例。
【发布时间】:2015-03-17 20:06:41
【问题描述】:

我有设置变量的案例。基于用户输入选择案例。当案例被执行时,变量被发送到一个 :RUN 标签,在那里它们被推送到一些代码中。

我想要做的:当用户输入“ALL”作为输入时,会有一个循环遍历每个案例并通过 :RUN 标签处理这些变量。我不确定您是否可以设计一个 FOR 循环来遍历所有案例。我完全愿意接受建议。

谢谢

SET /P PROCESS="选择要运行的进程:" 2>NUL CALL :%PROCESS% # jump to :CASES. IF ERRORLEVEL 1 CALL :ALL # if label doesn't exist ECHO Done. EXIT /B :PROCESS1 set runProcess1A=Yes set runProcess1B=No set runProcess1C=Yes goto RUN :PROCESS2 set runProcess2A=Yes set runProcess2B=Yes set runProcess2C=Yes goto RUN :PROCESS3 set runProcess3A=Yes set runProcess3B=No set runProcess3C=No goto RUN :ALL REM CODE NEEDED HERE TO RUN THROUGH ALL THE CASES (PROCESS1 PROCESS2 AND PROCESS3). :RUN rem If process1A==Yes, then do something ETC

【问题讨论】:

    标签: loops batch-file for-loop cmd


    【解决方案1】:

    这应该做你想做的。

    REM Assumes the input will be a number between 1 and 3, or the word ALL
    SET /P PROCESS="Choose a process to run: "
    
    SET P1=Yes No Yes
    SET P2=Yes Yes Yes
    SET P3=Yes No No
    
    IF "%PROCESS%"=="ALL" (
        FOR %%Z IN (1 2 3) DO FOR /F "TOKENS=1-3" %%A IN (!P%PROCESS%!) DO (
            SET runProcess%Z%A=%%A
            SET runProcess%Z%B=%%B
            SET runProcess%Z%C=%%C
    ) ELSE (
        FOR /F "TOKENS=1-3" %%A IN (!P%PROCESS%!) DO (
            SET runProcess%PROCESS%A=%%A
            SET runProcess%PROCESS%B=%%B
            SET runProcess%PROCESS%C=%%C
        )
    )
    
    :RUN
    ...
    

    【讨论】:

      猜你喜欢
      • 2015-07-04
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      • 2013-08-30
      • 2016-03-03
      • 1970-01-01
      相关资源
      最近更新 更多