Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Echo off & CD "%~dp0"
- ::: Define Array macro usage: %$Def:$A=Group Name%element values as list
- Set "$Def=For %%n in (1 2)Do if %%n==2 ((If "!#$A!"=="" (Set "#$A=0"))&(For %%G in (!elements!)Do (Set "$A[!#$A!]=%%~G"&Set /A "#$A+=1")))Else Set elements="
- ::: $Find macro usage: %$Find:$A=Group Name%EXACTValueToFind
- Set "$Find=Set "Fnd=0"&For %%n in (1 2)Do if %%n==2 (For %%G in ("!string!")Do (For /F "Tokens=1,2 Delims==" %%1 in ('Set $A[')Do (If /I "%%~G"=="%%2" (Set "Fnd=1"&Echo/%%2 in Var %%1)))&(If not "!Fnd!"=="1" (Echo/!String! not found in $A&Set "Fnd=0")))Else Set string="
- ::: /D array display macro usage: %/D:$A=Group Name%
- Set "/D=For /L %%G in (0 1 !#$A!)Do If not "!$A[%%G]!"=="" Echo/$A[%%G]=!$A[%%G]!"
- ::: /C clear array variables macro usage: %/D:$A=Group Name%
- Set "/C=(For /F "Tokens=1,2 Delims==" %%G in ('Set $A[')Do (Set "%%G=")& Set "#$A=") > Nul 2> Nul"
- ::: Sort /Order macro usage: %Sort/L:$A=Group Name% or %Sort/H:$A=Group Name%
- Set "Sort/L=(((For /F "Tokens=1,2 Delims==" %%G in ('Set $A[')Do Echo/%%H)>"%TEMP%\__Sort.txt")&(Set "#$A=0"&For /F "UseBackQ Delims=" %%G in (`Type "%TEMP%\__Sort.txt" ^| Sort`)Do (For %%x in ("$A[!#$A!]") Do (Setlocal DisableDelayedExpansion&&Endlocal&Set "%%~x=%%~G")&Set /A "#$A+=1"))&Set /A "#$A-=1")"
- Set "Sort/H=(((For /F "Tokens=1,2 Delims==" %%G in ('Set $A[')Do Echo/%%H)>"%TEMP%\__Sort.txt")&(Set "#$A=0"&For /F "UseBackQ Delims=" %%G in (`Type "%TEMP%\__Sort.txt" ^| Sort /R`)Do (For %%x in ("$A[!#$A!]") Do (Setlocal DisableDelayedExpansion&&Endlocal&Set "%%~x=%%~G")&Set /A "#$A+=1"))&Set /A "#$A-=1")"
- Setlocal && For /F "tokens=2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (Endlocal&Set "/AE=%%a")
- Set "List/E=Set "#n=0"&For %%n in (1 2)Do if %%n==2 (For %%G in (!ListV!)Do If "!#n!"=="i#" (Echo/%%~G& Set /A "#n+=1")Else (Set /A "#n+=1"))Else Set ListV="
- Set "List/D=Set "#$L=0"&For %%n in (1 2)Do if %%n==2 (For %%G in (!$L!)Do (Echo/%%~G&Set /A "#$L+=1"))Else Set $L="
- rem // usage examples
- Set "TAB= "
- Set "CIOut=(For /L %%. in (0,1,!#CI!) Do for /F "Tokens=1,2 Delims==" %%G in ('Set CI[%%.]')Do Echo/!%%H!%%G=%%H!Off!)"
- If Defined #CI Set #CI=
- Setlocal EnableExtensions EnableDelayedExpansion & Mode 1000
- Echo/Define Lists:&Echo/%%List/D:$L-ListVarname%%"List" "quoted" "values"&Echo/
- %List/D:$L=str%"Red=31" "Yellow=33" "Green=32" "Blue=34" "Purple=35" "Cyan=36" "White=37" "Gray=90" "Pink=91" "Beige=93" "Aqua=94" "Magenta=95" "Teal=96" "Off=0" "Black=30"
- Echo/&Echo/Extract value from list by index #:&Echo/%%List/E:i#=indexValue%%^^!ListVarname^^!&Echo/
- For /L %%. in (0,2,!#str!) Do (Set "el#=%%."&%List/E:i#=!el#!%!str!)
- Pause
- Echo/&Echo/Clear, Define, sort or search Array values&Echo/
- %/C:$A=El%
- Set /A Red=31,Yellow=33,Green=32,Blue=34,Purple=35,Cyan=36,White=37,Gray=90,Pink=91,Beige=93,Aqua=94,Magenta=95,Teal=96,Off=0,Black=30
- For %%A in (Red,Yellow,Green,Blue,Off,Pink,Beige,Gray,Purple,Cyan,White,Aqua,Magenta,Teal,Black) do ((%$Def:$A=CI%%%A)&Set "%%A=%/AE%[!%%A!m")
- Set /A #CI-=1 > Nul
- %CIOut% & %$Find:$A=CI%Black
- %Sort/L:$A=CI% & %CIOut% & %$Find:$A=CI%Black
- %Sort/H:$A=CI% & %CIOut% & %$Find:$A=CI%Black
- Pause
- %$Def:$A=El%1 1 2 3 5 8 13 21
- %/D:$A=El%
- %$Find:$A=El%8
- %/C:$A=El%
- %$Def:$A=El%02 05 11 41 31 17 47 07 37 19 29 23 13 43 03
- %/D:$A=El%
- %$Find:$A=El%8
- %$Find:$A=El%41
- %Sort/L:$A=El%
- %/D:$A=El%
- %$Find:$A=El%41
- %Sort/H:$A=El%
- %/D:$A=El%
- %$Find:$A=El%41
- Endlocal
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement