ปิดการใช้งาน PowerShell ส่งเสียงบี๊บบน Backspace


82

ดูเหมือนว่าจะมีการเพิ่มฟีเจอร์นี้ใน PowerShell เวอร์ชัน 5.1 เนื่องจากฉันไม่พบมันในแล็ปท็อปที่ยังใช้งาน 5.0 อยู่

เมื่อกดBackspacePowerShell มันจะส่งเสียง 'บี๊บ' หากไม่มีข้อความ (มากกว่า) ที่จะลบ นี่เป็นเรื่องที่ค่อนข้างน่ารำคาญถ้าคุณกดปุ่มค้างไว้นานเกินไปเพราะเสียงจะดังไปชั่วขณะหลังจากที่คุณปล่อยมัน

ผมพบว่านี้คำถามผู้ใช้ซูเปอร์ซึ่งแสดงให้เห็นการปิดการใช้บริการปี๊บซึ่งจะทำงาน แต่ฉันต้องการที่จะยังคงสามารถที่จะใช้เสียงเตือนในสคริปต์

ฉันจะปิดเสียง "บี๊บบนแบ็คสเปซ" ได้อย่างไรโดยไม่ปิดการใช้งานบี๊บอย่างสมบูรณ์?


7
Set-PSReadlineOption -BellStyle None
PetSerAl

1
@ PetSerAl ใช้งานได้ แต่ฉันต้องตั้งทุกครั้งที่เปิดหน้าต่าง PowerShell ใหม่ มีวิธีใดที่จะทำให้การตั้งค่าหรือไม่?
FastEthernet


2
@FastEthernet เพิ่มไปยังไฟล์โปรไฟล์ PowerShell
DavidPostill

1
@PetSerAl กรุณาโพสต์คำตอบ
FastEthernet

คำตอบ:


112

มีการส่งเสียงบี๊บโดยPSReadlineโมดูลซึ่งจัดส่งมาพร้อมกับ Windows 10 คุณต้องเปลี่ยนตัวPSReadlineเลือกเพื่อปิดการทำงานของเบลล์:

Set-PSReadlineOption -BellStyle None

หากคุณต้องการให้การเปลี่ยนแปลงนี้สำหรับเซสชัน PowerShell ในอนาคตทั้งหมดคุณต้องเพิ่มคำสั่งนี้ลงในโปรไฟล์ PowerShell ของคุณ ตัวอย่างเช่นในการตั้งค่าตัวเลือกสำหรับ "ผู้ใช้ปัจจุบัน, โฮสต์ปัจจุบัน" ( $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"

บรรทัดแรกอนุญาตให้โปรไฟล์ของคุณเรียกใช้สคริปต์เริ่มต้นเมื่อ PowerShell เปิดขึ้น ( เกี่ยวกับนโยบายการดำเนินการ ) บรรทัดที่สองทำการทดสอบเพื่อดูว่าคุณได้กำหนดสคริปต์เริ่มต้นไว้สำหรับ "ผู้ใช้ปัจจุบันโฮสต์ปัจจุบัน" บรรทัดที่สามเพิ่มตัวเลือกสัญญาณเตือนให้กับสคริปต์เริ่มต้นของคุณ


5
@Odys no - เป็นวิธีเดียวกันกับที่คุณต้องทำใน Bash / ZSH หรือ Unix shell ใด ๆ
Tamoghna Chowdhury

21

โซลูชันถาวรที่ขยายคำตอบของ@PetSerAl :

  1. เรียกใช้ PowerShell ในฐานะผู้ดูแลระบบ
  2. set-executionpolicy remotesignedดำเนินการ: วิธีนี้จะทำให้สคริปต์ PowerShell ทำงานบนคอมพิวเตอร์ของคุณ หากคุณไม่แน่ใจในสิ่งที่ไม่ดำเนินการต่อ
  3. ไปที่C:\Windows\System32\WindowsPowerShell\v1.0ถ้าคุณใช้ Windows 10
  4. Microsoft.PowerShell_profile.ps1สร้างไฟล์ชื่อ
  5. Set-PSReadlineOption -BellStyle Noneแก้ไขไฟล์ที่และเพิ่ม
  6. เปิดคอนโซล PowerShell ใหม่และคุณไม่ควรได้ยินเสียงบี๊บอีกต่อไป

คอนโซล PowerShell (ใหม่) ทั้งหมดสำหรับผู้ใช้ทั้งหมดในคอมพิวเตอร์ของคุณไม่ทำงาน

คำตอบนี้สำหรับ Windows 10 สำหรับ Windows รุ่นอื่น ๆ โฟลเดอร์อาจแตกต่างกัน


Set-ExecutionPolicyอาจต้องได้รับการยกระดับสิทธิ์ดังนั้นหากคุณต้องการเปลี่ยนการตั้งค่านี้สำหรับผู้ใช้ของคุณเองเท่านั้นคุณสามารถใช้การตั้งค่านี้กับ-Scope CurrentUserอาร์กิวเมนต์
mehmetseckin

2

ฉันได้ยื่นรายการ Github นี้กับ PsReadLine เนื่องจากฉันไม่แน่ใจว่าการเปลี่ยนแปลงนี้เป็นไปตามเจตนา - https://github.com/lzybkr/PSReadLine/issues/422


1
สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถามและควรถูกโพสต์เป็นความคิดเห็น คำตอบที่ไม่ใช่อาจมีการลบ
G-Man

1

การปรับคำตอบของ @Odys โดยใช้ Bash shell บนระบบย่อย Windows สำหรับ Linux (สมมติว่าคุณเปิดใช้งานไว้)

1 เปิดพรอมต์คำสั่งในฐานะผู้ดูแลและเรียกใช้

set-executionpolicy remotesigned

2 พิมพ์bashเพื่อเริ่มเปลือก bash

3 เปลี่ยนเป็นไดเรกทอรีที่เหมาะสม

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

4 สร้างไฟล์ชื่อ "Microsoft.Powershell_profile.ps1" และเขียน "Set-PSReadlineOption -BellStyle None" ลงไป

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

ฉันไม่สามารถเพิ่มไฟล์ภายใต้เส้นทางที่กำหนดซึ่งไม่แปลกใจเพราะสิทธิ์การเข้าถึงโฟลเดอร์ไม่รวมถึงการเขียน ฉันพยายามแก้ไขสิทธิ์การเข้าถึง แต่ไม่มีโชค คุณประสบปัญหาเช่นนี้หรือไม่?
lulijeta

พยายามsudo chmod 644 ./Microsoft.Powershell_profile.ps1ให้สิทธิ์ตัวเอง ฉันจำรหัสผ่านรูทไม่ได้ดังนั้นฉันจึงไม่สามารถยืนยันได้
Evan Rosica

ขอบคุณ แต่ chmod สามารถพยายามที่จะเปลี่ยนสิทธิ์การเข้าถึงไฟล์เฉพาะในกรณีที่ไฟล์นั้นมีอยู่ ปัญหาของฉันคือฉันไม่สามารถสร้าง Microsoft.Powershell_profile.ps1 ภายใต้โฟลเดอร์ v1.0 v1.0 (โฟลเดอร์) ไม่มีสิทธิ์การเข้าถึงในการเขียนดังนั้นฉันไม่สามารถสร้างไฟล์ภายใต้โฟลเดอร์นั้น ฉันพยายามเปลี่ยนสิทธิ์การเข้าถึงของ v1.0 แต่ chmod ดูเหมือนจะมีปัญหาบางอย่างกับระบบย่อย คุณจัดการสร้างไฟล์ภายใต้ v1.0 ได้อย่างไร?
lulijeta
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.