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