Tắt tiếng bíp PowerShell trên backspace


82

Tính năng này dường như đã được thêm vào trong PowerShell phiên bản 5.1, vì tôi không tìm thấy nó trên máy tính xách tay của tôi vẫn chạy 5.0.

Khi nhấn Backspacetrong PowerShell, nó sẽ phát ra âm thanh 'bíp' nếu không có văn bản (thêm) để xóa. Điều này khá khó chịu nếu bạn vô tình giữ phím quá lâu, vì âm thanh sẽ tiếp tục trong một thời gian ngắn sau khi bạn nhả nó.

Tôi tìm thấy này câu hỏi tài siêu mà gợi ý để vô hiệu hóa các dịch vụ Beep, mà không làm việc, nhưng tôi muốn vẫn có thể sử dụng tiếng bíp trong kịch bản.

Làm cách nào để tắt âm thanh "tiếng bíp trên backspace" mà không tắt tiếng bíp hoàn toàn?


7
Set-PSReadlineOption -BellStyle None
dùng364455

1
@PetSerAl Điều đó hoạt động, nhưng tôi phải đặt nó mỗi khi tôi mở một cửa sổ PowerShell mới. Có cách nào để làm cho thiết lập thanh?
FastEthernet


2
@FastEthernet Thêm nó vào tệp hồ sơ PowerShell
DavidPostill

1
@PetSerAl Xin vui lòng gửi câu trả lời.
FastEthernet

Câu trả lời:


112

Tiếng bíp được cung cấp bởi PSReadlinemô-đun, được cung cấp cùng với Windows 10. Bạn cần thay đổi PSReadlinetùy chọn để tắt chuông:

Set-PSReadlineOption -BellStyle None

Nếu bạn muốn thay đổi này cho tất cả các phiên PowerShell trong tương lai, thì bạn cần thêm lệnh này vào hồ sơ PowerShell của mình . Ví dụ: để đặt tùy chọn cho "Người dùng hiện tại, Máy chủ hiện tại" ( $Profile):

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
if (!(Test-Path -Path "$Profile")) {New-Item -ItemType File -Path "$Profile" -Force}
Add-Content -Value "Set-PSReadlineOption -BellStyle None" -Path "$Profile"

Dòng đầu tiên cho phép hồ sơ của bạn chạy tập lệnh khởi động khi PowerShell mở ( Giới thiệu về Chính sách thực thi ). Dòng thứ hai kiểm tra xem bạn đã có tập lệnh khởi động được xác định cho "Người dùng hiện tại, Máy chủ hiện tại" chưa. Dòng thứ ba thêm tùy chọn chuông vào tập lệnh khởi động của bạn.


5
@Odys không - đó cũng giống như cách bạn phải làm trong Bash / ZSH hoặc bất kỳ shell Unix nào.
Tamoghna Chowdhury

21

Một giải pháp lâu dài hơn giúp mở rộng câu trả lời của @PetSerAl :

  1. Chạy PowerShell với tư cách quản trị viên.
  2. Thực hiện : set-executionpolicy remotesigned. Điều này sẽ cho phép các tập lệnh PowerShell chạy trên máy tính của bạn. Nếu bạn không chắc chắn về những gì không tiếp tục.
  3. Đi đến C:\Windows\System32\WindowsPowerShell\v1.0nếu bạn đang ở trên Windows 10.
  4. Tạo một tập tin có tên Microsoft.PowerShell_profile.ps1.
  5. Chỉnh sửa tập tin đó và thêm Set-PSReadlineOption -BellStyle None.
  6. Mở bảng điều khiển PowerShell mới và bạn không nên nghe tiếng bíp nữa.

Tất cả các bảng điều khiển PowerShell (mới) cho tất cả người dùng trên máy tính của bạn hiện đang im lặng.

Câu trả lời này dành cho Windows 10. Đối với các phiên bản Windows khác, thư mục có thể khác nhau.


Set-ExecutionPolicycó thể yêu cầu quyền nâng cao, vì vậy nếu bạn muốn thay đổi cài đặt này chỉ cho người dùng của riêng bạn, bạn có thể sử dụng nó với -Scope CurrentUserđối số.
mehmetseckin

1

Tôi đã gửi mục Github này chống lại PsReadLine, vì tôi không chắc sự thay đổi này là có chủ ý - https://github.com/lzybkr/PSReadLine/issues/422


2
Điều này không cung cấp một câu trả lời cho câu hỏi và nên được đăng dưới dạng một bình luận. Không trả lời có thể xóa.
G-Man

1

Việc điều chỉnh câu trả lời của @Odys bằng cách sử dụng trình bao Bash trên Hệ thống con Windows cho Linux (giả sử bạn đã bật nó).

1 Mở một dấu nhắc lệnh với tư cách quản trị viên và chạy

set-executionpolicy remotesigned

2 Loại bashđể bắt đầu bash shell

3 Thay đổi thư mục thích hợp

cd /mnt/c/Windows/System32/WindowsPowerShell/v1.0 

4 Tạo một tệp có tên "Microsoft.Powershell_profile.ps1" và viết "Set-PSReadlineOption -BellStyle none" cho nó

echo "Set-PSReadlineOption -BellStyle None" >> Microsoft.Powershell_profile.ps1

Tôi không thể thêm tệp theo đường dẫn đã cho, điều này không có gì đáng ngạc nhiên vì quyền truy cập vào thư mục không bao gồm ghi. Tôi đã cố gắng sửa đổi quyền truy cập, nhưng không có may mắn. Bạn đã phải đối mặt với một vấn đề như thế này?
lulijeta

cố gắng sudo chmod 644 ./Microsoft.Powershell_profile.ps1cho mình những đặc quyền Tôi không nhớ mật khẩu gốc của mình, vì vậy tôi không thể xác nhận điều này hoạt động.
Evan Rosica

Cảm ơn bạn nhưng chmod chỉ có thể cố gắng thay đổi quyền truy cập tệp chỉ khi tệp tồn tại. Vấn đề của tôi là tôi không thể tạo Microsoft.Powershell_profile.ps1 trong thư mục v1.0. v1.0 (thư mục) thiếu quyền truy cập để ghi vào đó, do đó tôi không thể tạo tệp trong thư mục đó. Tôi đã cố gắng thay đổi quyền truy cập của v1.0, nhưng rõ ràng chmod có một số vấn đề với hệ thống con. Làm thế nào bạn quản lý để tạo một tập tin theo v1.0?
lulijeta
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.