Powershell tương đương với Ctrl + R?


13

Trong bash tôi có thể làm Ctrl+ Rvà bắt đầu nhập một lệnh để nó tìm kiếm lịch sử của tôi.

Làm thế nào để tôi làm điều đó trong powershell?

Có cách nào để ràng buộc một chìa khóa cho một cái gì đó như thế nào?

function GH($str) {get-history | select-string $str}

Nhưng tôi sẽ cần phải đọc lại chuỗi cho mỗi đầu vào char hoặc loại bỏ các lệnh khớp đầu ra như Ctrl+ Rdoes.

Điều này có thể không?

Câu trả lời:


11

Bạn có thể khắc phục điều này bằng cách áp dụng mô-đun PSReadLine .

Xem một bài viết về Hey, Scripting Guy! blog liên quan đến việc triển khai đường dẫn lấy cảm hứng từ bash này cho PowerShell.

Cụ thể, việc sử dụng Ctrl+ Alt+ ( Shift) +? để hiển thị tất cả các keybindings.

PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.0.10240.16384
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   10.0.10240.16384
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3

Ctrl+R

PS C:\> Get-Module -ListAvailable
bck-i-search: mo_

Ctrl+ Alt+ ( Shift) +S

Key                  Function                 Description
---                  --------                 -----------
Ctrl+r               ReverseSearchHistory     Search history backwards interactively
Ctrl+s               ForwardSearchHistory     Search history forward interactively

Tóm lại: cài đặt mô-đun này bằng tay hoặc nâng cấp lên Windows PowerShell v5.


5

Nhập cụm từ tìm kiếm của bạn và sau đó nhấn F8, điều này sẽ tìm kiếm lịch sử lệnh của bạn.

Có một danh sách các phím tắt PowerShell rất hữu ích ở đây .


Bạn đã thử điều đó cho mình? Nó không bao giờ thực sự làm việc cho tôi hoặc chỉ một nửa thời gian. Ví dụ, tôi gõ một loạt các lệnh get- <anything>. Sau đó nhập get- <F8> và nó chỉ quay vòng qua một hoặc hai lệnh ngẫu nhiên trong lịch sử của tôi? Tôi không biết nó đang làm cái quái gì nữa. Ví dụ: tôi vừa gõ get-childitem và chạy nó ngay sau khi gõ get-c <f8> và tôi không nhận được gì. Có lẽ phiên của tôi bị rối tung?
red888

Hoạt động 100% thời gian cho tôi, đây là với WMF 5 được cài đặt
Sam Cogan

5

Tôi không biết khi nào nó được thêm vào, nhưng trên Windows 10 không được tùy chỉnh, cập nhật của tôi, nó được tích hợp sẵn. Nhấn ctrl + r để tìm kiếm lịch sử ngược, nó hoạt động rất tốt.

nhập mô tả hình ảnh ở đây


Tôi cũng làm việc trên win10. Ctrl + R hoạt động trong powershell, nhưng không hoạt động trong cửa sổ cmd.
dudu

Chắc chắn, nhưng tại sao bạn cần sử dụng cmd.exe ??
Raúl Salinas-Monteagudo

0

Ngoài ra còn có tìm kiếm đồ họa dưới phím F7. Khi nhấn nó sẽ hiển thị cửa sổ bật lên mà bạn có thể cuộn để tìm kiếm lệnh đã được thực hiện trước đó. Nhấn enter trong khi con trỏ di chuột, dòng sẽ kiểm tra lại nó.


0

Bạn cũng có thể bắt đầu lệnh của mình bằng cách đặt ký tự # trước văn bản tìm kiếm một phần của lệnh bạn đang tìm, sau đó nhấn tap sau đó (nhiều lần nếu cần) để tìm kiếm trong lịch sử phiên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.