1

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

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

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

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

4

2 回答 2

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
于 2013-10-27T17:40:46.950 回答
2

您可以通过使用循环来避免许多 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"
于 2013-10-27T17:46:53.107 回答