感谢Aacini,我现在有一种方法可以将变量从最大到最小排序。批处理:检查是否有任何变量是相等的
链接: Comparing and ordering multiple numbers in batch
但是,如果2个或更多我的变量的值是相同的,他们不会进行排序。我试着测试一下这个集合中的两个变量是否相等。我试着用if语句对每个变量进行任意组合,但我认为这并不是非常有效,而且很难改变。
有没有办法实现这个目标?
@echo off
setlocal EnableDelayedExpansion
set speed1=190
set speed2=78
set speed3=78
set speed4=23
rem Get the descending order of previous elements via "order" array
for /L %%i in (1,1,4) do (
set /A num=1000-speed%%i
set order!num!=%%i
)
rem Show the elements of "speed" array in descending order
for /F "tokens=2 delims==" %%i in ('set order') do (
echo speed%%i = !speed%%i!
)
输出将只显示:
speed1 = 190
speed3 = 78
speed4 = 23
你是什么意思,“如果他们任何人都等于另一个”?如果集合中的两个变量相等?或者,如果集合中的任何变量等于外部变量? – Aacini
如果集合中的两个变量相等。对不起,可怕的解释,我会尝试编辑我的帖子来解决这个问题。 –