変数の内容を特定の順番に並び替える。文字列としての処理のほかに、数値としての処理も可能。
Sort, VarName [, Options]
引数名 | 説明 |
---|---|
VarName | 対象となるデータを格納した変数名。この変数の内容が並び替えられ、この変数に格納される。 |
Options | 後述するオプションを半角スペース区切りで列挙。 |
VarNameが「Clipboard」で、クリップボードの内容がExplorerなどでコピーしたファイル群だった場合、Sort実行後のクリップボードの内容はファイル名を改行区切りで列挙した文字列になってしまう。
VarNameに指定したものが環境変数だった場合、新たに同じ名前のスクリプト側の変数が作成され、そこに結果が格納される。
その後VarNameへのアクセスはスクリプト側の変数へのアクセスになってしまう。
下記の例のようにすれば、結果を環境変数に移して、アクセス先を環境変数に戻すことが出来る。
VarSort, MyEnvVar EnvSet, MyEnvVar, %MyEnvVar% MyEnvVar = ;スクリプト側の変数を空にすると、環境変数のほうが優先されるようになる
StringSplit, parsing loop, clipboard
MyVar = 5,3,7,9,1,13,999,-4 Sort MyVar, N D, ; Sort numerically, use comma as delimiter. MsgBox %MyVar% ; The result is -4,1,3,5,7,9,13,999 ; This example makes Win+C a hotkey to copy files from an open ; Explorer window and put their sorted filenames onto the clipboard: #c:: Clipboard = ; Must be blank for detection to work. Send ^c ClipWait 2 if ErrorLevel <> 0 return Sort Clipboard MsgBox Ready to be pasted:`n%Clipboard% return
; The following examples demonstrate custom sorting via a callback function. MyVar = def`nabc`nmno`nFGH`nco-op`ncoop`ncop`ncon`n Sort, MyVar, F StringSort StringSort(a1, a2) { return a1 > a2 ? 1 : a1 < a2 ? -1 : 0 } MyVar = 5,3,7,9,1,13,999,-4 Sort, MyVar, F IntegerSort D, IntegerSort(a1, a2) { return a1 - a2 ; This method works only if the result never overflows a signed 64-bit integer. } MyVar = 1,2,3,4 Sort, MyVar, F ReverseDirection D, ; Reverses the list so that it contains 4,3,2,1 ReverseDirection(a1, a2, offset) { return offset ; Offset is positive if a2 came after a1 in the original list; negative otherwise. }