我有 5 个变量,想使用值最高的那个。我如何批量执行此操作?
这是我到目前为止所拥有的:
@echo off
set Var1=1
set Var2=1
set Var3=1
set Var4=2
set Var5=1
如果我想检查所有变量然后回显最高的,是否有一个命令,或者我必须使用很多 if 语句?
我有 5 个变量,想使用值最高的那个。我如何批量执行此操作?
这是我到目前为止所拥有的:
@echo off
set Var1=1
set Var2=1
set Var3=1
set Var4=2
set Var5=1
如果我想检查所有变量然后回显最高的,是否有一个命令,或者我必须使用很多 if 语句?
你可以使用一个循环:
setlocal enabledelayedexpansion
set /a max=Var1
for /l %%v in (1,1,5) do if !Var%%v! GTR !max! set /a max=Var%%v
您可以通过使用循环来避免许多 IF 语句:
setlocal enableDelayedExpansion
set "max=0"
for %%V in (var1 var2 var3 var4 var5) do if !%%V! gtr !max! set "max=!%%V!"
或者,如果变量确实具有您所描述的名称,那么您可以使用 FOR /L 循环,如 Joey 的回答。
或者,如果变量都以相同的前缀开头,并且您知道没有其他变量以相同的前缀开头:
setlocal enableDelayedExpansion
set "max=0"
for /f "delims== tokens=1*" %%A in ('set var') do if %%B gtr !max! set "max=%%B"