Chúng được "tích hợp sẵn" nhưng không thay đổi. Lưu ý:
PS > (Get-Alias dir).Options
AllScope
PS > (Get-Alias gci).Options
ReadOnly, AllScope
PS > Get-Alias | group Options
Count Name Group
----- ---- -----
91 ReadOnly, AllScope {%, ?, ac, asnp...}
46 AllScope {cat, cd, chdir, clear...}
Như bạn thấy, có một số phân vùng bí danh bởi tùy chọn ReadOnly
. Các số ReadOnly
là thành ngữ trong PowerShell, trong khi những cái có thể thay đổi được dành cho những người quen thuộc với các trình bao khác. Tôi đã thấy mọi người sửa đổi dir
để thêm nhiều chức năng hơn, trong khi vẫn giữ gci
làm bí danh thẳng cho Get-ChildItem
.
Để có khả năng tương thích rộng, tôi chỉ sử dụng các bí danh ReadOnly
trong tập lệnh của mình.
Ngoài ra, vì dir
trong CMD, ls
trong UNIX và gci
trong PowerShell, mỗi cách hoạt động theo cách riêng của chúng, tôi tự rèn luyện bản thân để sử dụng lệnh gốc chứ không phải bí danh. dir
có xu hướng hoạt động ở mọi nơi, nhưng dir -Recurse
thì không!
Như một bài tập huấn luyện, và để kiểm tra kịch bản của tôi cho khả năng tương thích, đôi khi tôi loại bỏ các phi ReadOnly
bí danh:
Get-Alias | ? { ! ($_.Options -match "ReadOnly") } | % { Remove-Item alias:$_ }
Có một cách tiếp cận nhẹ nhàng hơn nơi bạn thay thế mỗi bí danh với một lệnh mới mà cảnh báo bạn bạn đang sử dụng một trong các bí danh tương thích, nhưng cho phép bạn tiếp tục hoạt động.
Ngoài ra, bạn có thể thay đổi ReadOnly
bí danh nếu bạn thực sự muốn, nhưng vì những lý do trên tôi khuyên bạn nên chống lại nó:
PS > Set-Alias -Name sl -Value Get-ChildItem -Force -Option AllScope # BAD!
PS > sl
Directory: C:\Users\Jay
Mode LastWriteTime Length Name
---- ------------- ------ ----
Cảm ơn bạn (và những người khác nữa) cho một lời giải thích tuyệt vời! – Xerion
Trên thực tế, phần bạn dán nhãn là '# BAD! 'Chính là thứ tôi đang đập đầu vào tường cố gắng tìm ra cách để làm - ghi đè lên một bí danh ReadOnly. Tôi đã thực sự cố gắng ** - Force ** và ** - Option AllScope ** một cách riêng biệt, và tất nhiên không ai làm việc. Vì một lý do nào đó nó không xảy ra với tôi rằng mỗi một địa chỉ một trở ngại khác nhau, cả hai đều áp dụng cho các bí danh ReadOnly, vì vậy họ cần phải được sử dụng cùng nhau ... duh! –
Nếu bạn phải biết, tôi muốn bí danh ** sl ** to ** Push-Location ** để tôi có thể thay đổi hành vi mà không thay đổi thói quen của mình. Nó cũng có thể hữu ích để có một tham chiếu bí danh được xây dựng trong một lệnh proxy của lệnh mà nó thường tham chiếu. Một lần nữa, để thay đổi hành vi của lệnh mà không thay đổi thói quen của bạn. Vì vậy ... nó không nhất thiết phải luôn luôn '# BAD! '.;) –