Tôi chắc rằng ai đó có thể làm điều này tốt hơn, nhưng đây là một cách hoàn toàn tương thích với lynix. Nó có lợi ích là để lại cho bạn một rev
hàm chuỗi có thể sử dụng lại cho hộp công cụ của bạn, tức là nó sắp xếp toàn bộ chuỗi chứ không chỉ là ký tự cuối cùng:
function rev ($s) {return -join ($s[$s.Length..0])}
dir | foreach{rev($_.name)} | sort | foreach{rev($_)}
Tôi nghĩ rằng các foreach ở đây chứng minh độc đáo cách các ống PowerShell là các mảng và không chỉ đơn giản là các chuỗi như trong * nix.
Phải mất một lúc tôi mới nhận ra rằng tôi phải sử dụng duy nhất $_
và không sử dụng $_.name
thứ 2 foreach
. Vì vậy, tôi đã học được điều gì đó về các biến thể trong nội dung mảng từ ống này sang ống khác.
* Tín dụng cho sự can đảm của chức năng rev của tôi vào http://rosettacode.org/wiki/Reverse_a_opes#PowerShell
Hoạt động như lynix:
- thư mục | sắp xếp -Property @ {Expression = {$ n = $ _. Name.ToCharArray (); [Mảng] :: Đảo ngược ($ n); [Chuỗi] :: Tham gia ("", $ n)}}
Sắp xếp các tác phẩm như lynix, nhưng rất, rất chậm:
- ls -n | sắp xếp {$ _ [3e3..0]}
Không hoạt động như lynix, tức là không sắp xếp tất cả các ký tự của tên tệp; (chỉ sắp xếp ký tự cuối cùng của chuỗi):
- thư mục | sắp xếp {$ .name.Sub chuỗi ($ .name.length-1)}
- thư mục | sắp xếp {$ _. name [-1]}
- ls | sắp xếp {$ _. Tên [-1]}
- ls | sắp xếp {"$ _" [- 1]}
- ls -n | sắp xếp {$ _ [- 1]}