批量检查多个变量

时间:2013-10-27 17:37:13

标签: variables batch-file

我有5个变量,想要使用值最高的变量。我如何批量执行此操作?

这是我到目前为止所拥有的:

@echo off
set Var1=1
set Var2=1
set Var3=1
set Var4=2
set Var5=1

如果我想检查所有变量然后回显最高,是否有命令,或者我是否必须使用大量if语句?

2 个答案:

答案 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"