سؤال قم بتعطيل صفير PowerShell الموجود على backspace


يبدو أن هذه الميزة قد تمت إضافتها في الإصدار 5.1 من PowerShell ، حيث لا أجدها على الكمبيوتر المحمول الذي لا يزال قيد التشغيل 5.0.

عند الضغط مسافة للخلف في PowerShell ، سيصدر صوت 'beep' إذا لم يكن هناك نص (أكثر) لحذفه. هذا أمر مزعج للغاية إذا قمت بالضغط على المفتاح بطريق الخطأ لفترة طويلة ، حيث سيستمر الصوت لفترة قصيرة بعد إطلاقه.

وجدت هذه سؤال المستخدم الفائق الذي يقترح تعطيل خدمة Beep ، التي تعمل ، لكني لا أزال أرغب في استخدام أصوات صفير في البرامج النصية.

كيف أقوم بتعطيل صوت "beep on backspace" بدون تعطيل الأصوات بشكل كامل؟


68
2017-08-14 13:55


الأصل


Set-PSReadlineOption -BellStyle None - PetSerAl
PetSerAl يعمل هذا ، ولكن يجب علي تعيينه في كل مرة أفتح نافذة PowerShell جديدة. هل هناك أي طريقة لجعل الإعداد العصا؟ - FastEthernet
Get-Help about_Profiles - PetSerAl
FastEthernet أضفه إلى حسابك ملف تعريف PowerShell - DavidPostill♦
PetSerAl يرجى نشر إجابة. - FastEthernet


الأجوبة:


الصافرة مقدمة من 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 (حول سياسات التنفيذ). يختبر السطر الثاني لمعرفة ما إذا كان لديك بالفعل برنامج نصي لبدء التشغيل تم تعريفه لـ "المستخدم الحالي ، المضيف الحالي". يضيف السطر الثالث خيار الجرس إلى البرنامج النصي لبدء التشغيل.


91
2017-08-14 15:11



Odys لا - هذا بنفس الطريقة التي يجب عليك فعلها في Bash / ZSH أو أي قشرة Unix أيضًا. - Tamoghna Chowdhury


حل دائم أكثر يمتد 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 ، قد يختلف المجلد.


17
2018-02-18 20:04



Set-ExecutionPolicy قد يتطلب أذونات مرتفعة ، لذلك إذا كنت تريد تغيير هذا الإعداد لمستخدمك فقط ، فيمكنك استخدامه مع -Scope CurrentUserجدال. - Mehmet Seckin


أنا قدمت هذا البند جيثب ضد PsReadLine ، وأنا لست متأكدا من هذا التغيير كان متعمدا - https://github.com/lzybkr/PSReadLine/issues/422 


2
2017-08-16 19:34



هذا لا يوفر إجابة على السؤال وكان يجب نشره كتعليق. لا تخضع الأجوبة للحذف. - G-Man


تكيّف لإجابةOdys باستخدام shell Bash على نظام Windows الفرعي لـ Linux (على افتراض أنك قمت بتمكينه).

1 افتح موجه الأوامر كمسؤول ، ثم قم بتشغيله

set-executionpolicy remotesigned

2 اكتب 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

1
2017-11-02 23:04



لا يمكنني إضافة ملف تحت المسار المحدد ، وهو أمر غير مفاجئ لأن حقوق الوصول إلى المجلد لا تتضمن الكتابة. حاولت تعديل حقوق الوصول ، ولكن لم يحالفني الحظ. هل واجهت مشكلة كهذه؟ - 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