2015-09-07 61 views
0

訂貨多個號碼我有4個變量:比較和在批量

速度1 = 190

速度2 = 78

SPEED3 = 98

速度4 = 23

是否有任何如何排序變量,以便我可以從最大到最小的方式顯示它們?

例如,我想在上面顯示:

速度1 = 190

SPEED3 = 98

速度2 = 78

速度4 = 23種

回答

2

有幾種方法解決這個問題。您可以使用任何排序方法來獲取數組元素的升序。但是,在批處理文件編程的特殊情況下,您可以使用一個簡單的技巧,充分利用環境變量總是以排序順序保存的事實。當定義一個新變量時,SET命令將它放在正確的位置,因此所有變量都按字母順序排列。

要使用此技巧,只需在新陣列的名稱中插入所需的索引。在年底,在自然秩序過程中的數組元素由SET命令所示:

@echo off 
setlocal EnableDelayedExpansion 

set speed1=190 
set speed2=78 
set speed3=98 
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! 
) 

我建議你閱讀:Arrays, linked lists and other data structures in cmd.exe (batch) script