Home > Mobile >  batch file reverse list
batch file reverse list

Time:02-02

 @echo off
 setlocal enabledelayedexpansion
 chcp 65001
 rem δημιουργία λίστας
 set a[0]=μαρία
 set a[1]=ηλιάννα
 set a[2]=μιχάλης
 set a[3]=γιώργος
 set a[4]=κώστας

with the list above and with the for command I want to have the following result:

μαρία κώστας
ηλιάννα γιώργος
μιχάλης μιχάλης
γιώργος ηλιάννα
κώστας μαρία

I have tried

 @echo off
 setlocal enabledelayedexpansion
 chcp 65001
 set list=4 
 set a[0]=μαρία
 set a[1]=ηλιάννα
 set a[2]=μιχάλης
 set a[3]=γιώργος
 set a[4]=κώστας

 for /L %%i in (0,1,4) do (
 for /L %%x in (4,-1,0) do (
 echo !a[%%i]! , !a[%%x]!))

but i get as a result :

μαρία , κώστας
μαρία , γιώργος
μαρία , μιχάλης
μαρία , ηλιάννα
μαρία , μαρία
ηλιάννα , κώστας
ηλιάννα , γιώργος
ηλιάννα , μιχάλης
ηλιάννα , ηλιάννα
ηλιάννα , μαρία
μιχάλης , κώστας
μιχάλης , γιώργος
μιχάλης , μιχάλης
μιχάλης , ηλιάννα
μιχάλης , μαρία
γιώργος , κώστας
γιώργος , γιώργος
γιώργος , μιχάλης
γιώργος , ηλιάννα
γιώργος , μαρία
κώστας , κώστας
κώστας , γιώργος
κώστας , μιχάλης
κώστας , ηλιάννα
κώστας , μαρία

CodePudding user response:

for /L %%i in (0,1,4) do (
 set /a pair=4-%%i
 FOR %%x IN (!pair!) DO echo !a[%%i]! , !a[%%x]!
)

should do what you require

CodePudding user response:

@echo off
setlocal enabledelayedexpansion

set "list=element1 element2 element3 element4 element5"
set "reverseList="

for %%i in (%list%) do (
  set "reverseList=%%i !reverseList!"
)

echo Original list: %list%
echo Reversed list: %reverseList%
endlocal
  • Related