बैकस्पेस पर PowerShell बीप को अक्षम करें


82

ऐसा लगता है कि PowerShell संस्करण 5.1 में यह सुविधा जोड़ी गई है, क्योंकि मुझे यह अभी भी 5.0 पर चलने वाले मेरे लैपटॉप पर नहीं मिला है।

BackspacePowerShell में दबाने पर, यदि हटाने के लिए कोई (अधिक) पाठ नहीं है, तो यह एक 'बीप' ध्वनि का उत्सर्जन करेगा। यह काफी कष्टप्रद है यदि आप गलती से बहुत देर तक चाबी को दबाए रखते हैं, क्योंकि इसे जारी करने के बाद ध्वनि थोड़ी देर तक चलती रहेगी।

मुझे यह सुपर उपयोगकर्ता प्रश्न मिला जो बीप सेवा को अक्षम करने का सुझाव देता है, जो काम करता है, लेकिन मैं अभी भी स्क्रिप्ट में बीप्स का उपयोग करने में सक्षम होना चाहूंगा।

मैं पूरी तरह से बीप को अक्षम किए बिना "बैकस्पेस पर बीप" ध्वनि को कैसे अक्षम कर सकता हूं?


7
Set-PSReadlineOption -BellStyle None
पेट्सएरल

1
@PetSerAl यह काम करता है, लेकिन मुझे इसे हर बार सेट करना पड़ता है जब मैं एक नया PowerShell विंडो खोलता हूं। क्या सेटिंग स्टिक बनाने का कोई तरीका है?
FastEiber


2
@FastEthernet अपने को यह जोड़े PowerShell प्रोफ़ाइल फ़ाइल
DavidPostill

1
@PetSerAl कृपया एक उत्तर पोस्ट करें।
फास्टएजर

जवाबों:


112

बीप PSReadlineमॉड्यूल द्वारा प्रदान किया जाता है, जिसे विंडोज 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
@ ओडीएस नहीं - यह उसी तरह है जैसे आपको बैश / जेडएसएच या किसी यूनिक्स शेल में भी करना होगा।
तमोगण चौधरी

21

एक अधिक स्थायी समाधान जो @PetSerAl का उत्तर देता है:

  1. व्यवस्थापक के रूप में PowerShell चलाएँ।
  2. ययययय यययय यययय यययय यययय यययय ययययय यययय यययययय set-executionpolicy remotesigned।। यह आपके कंप्यूटर पर PowerShell स्क्रिप्ट को चलाने की अनुमति देगा। यदि आप निश्चित नहीं हैं कि क्या जारी नहीं है।
  3. C:\Windows\System32\WindowsPowerShell\v1.0यदि आप विंडोज 10 पर हैं, तो जाएं ।
  4. नाम से एक फ़ाइल बनाएँ Microsoft.PowerShell_profile.ps1
  5. उस फ़ाइल को संपादित करें और जोड़ें Set-PSReadlineOption -BellStyle None
  6. एक नया PowerShell कंसोल खोलें और आपको बीप को और अधिक नहीं सुनना चाहिए।

आपके कंप्यूटर पर सभी उपयोगकर्ताओं के लिए सभी (नए) PowerShell कंसोल अब चुप हैं।

यह उत्तर विंडोज 10. के लिए है। विंडोज के अन्य संस्करणों के लिए, फ़ोल्डर अलग हो सकता है।


Set-ExecutionPolicyउच्चीकृत अनुमतियों की आवश्यकता हो सकती है, इसलिए यदि आप इस सेटिंग को केवल अपने उपयोगकर्ता के लिए बदलना चाहते हैं, तो आप इसका उपयोग -Scope CurrentUserतर्क के साथ कर सकते हैं ।
mehmetseckin

2

मैंने इस Github आइटम को PsReadLine के विरुद्ध दायर किया, क्योंकि मुझे यकीन नहीं है कि यह बदलाव जानबूझकर किया गया था - https://github.com/lzybkr/PSReadLine/issues/422


1
यह प्रश्न का उत्तर नहीं देता है और टिप्पणी के रूप में पोस्ट किया जाना चाहिए था। गैर-उत्तर विलोपन के अधीन हैं।
जी-मैन

1

लिनक्स के लिए विंडोज सबसिस्टम पर बैश शेल का उपयोग करके @Odys के उत्तर का अनुकूलन (यह मानते हुए कि आपने इसे सक्षम किया है)।

1 एक व्यवस्थापक के रूप में कमांड प्रॉम्प्ट खोलें, और चलाएं

set-executionpolicy remotesigned

2 bashबैश शेल शुरू करने के लिए टाइप करें

3 उचित निर्देशिका में बदलें

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

4 "Microsoft.Powershell_profile.ps1" नामक एक फ़ाइल बनाएं और इसे "सेट-PSReadlineOption -BellStyle कोई नहीं" लिखें।

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

मैं दिए गए पथ के तहत एक फ़ाइल नहीं जोड़ सकता, जो कोई आश्चर्य की बात नहीं है क्योंकि फ़ोल्डर तक पहुंच अधिकार में लिखना शामिल नहीं है। मैंने एक्सेस अधिकारों को संशोधित करने की कोशिश की, लेकिन कोई भाग्य नहीं। क्या आपको इस तरह की समस्या का सामना करना पड़ा?
लुलिजेटा

sudo chmod 644 ./Microsoft.Powershell_profile.ps1अपने आप को विशेषाधिकार देने की कोशिश करें। मुझे अपना रूट पासवर्ड याद नहीं है, इसलिए मैं इस काम की पुष्टि नहीं कर सकता।
इवान रोजिका

धन्यवाद, लेकिन chmod केवल फाइल एक्सेस अनुमतियों को बदलने का प्रयास कर सकता है यदि फ़ाइल मौजूद है। मेरी समस्या यह है कि मैं फ़ोल्डर v1.0 के तहत Microsoft.Powershell_profile.ps1 नहीं बना सकता। v1.0 (फ़ोल्डर) उस पर लिखने के लिए पहुँच अधिकार का अभाव है, इसलिए मैं उस फ़ोल्डर के तहत एक फ़ाइल नहीं बना सकता। मैंने v1.0 के एक्सेस अधिकारों को बदलने की कोशिश की, लेकिन जाहिर है कि सबमोड में सबसिस्टम के साथ कुछ समस्याएं हैं। आपने v1.0 के तहत फ़ाइल बनाने का प्रबंधन कैसे किया?
लुलिजेटा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.