Is there a way to essentially mute the Beeping function of the Windows command shell?

I'm working on a PowerShell script right now which ends up printing several lines of text to the screen. I'm working out a bug in the encoding logic. But every time I'm wrong my script will spew a bunch of random binary characters to the screen and eventually cause many annoying beeps.

The failure is quite obvious without the beeps :)

migrated from stackoverflow.com Jul 22 '09 at 5:04

This question came from our site for professional and enthusiast programmers.

  • 3
    thanks for this question. It wouldn't dawn on me to ask... but it sure as hell is annoying. – MasterPeter Apr 16 '09 at 15:08

The Windows command line command "net stop beep" will turn off the beeping, and "net start beep" will turn on the beeping. Source

It should be noted that the instruction stops the beep globally on windows and not on just for within the windows command shell. Also, the service will run again when you reboot your computer.

Ady's answer will suffice. But if you want to just disable it per instance, you can always put this method into a batch file (but it's so short you can just type it) and run it.

  • 3
    nice, didn't realise it was that simple. – Ady Oct 31 '08 at 7:57
  • 5
    When I attempt net stop beep, I get the error The Beep service could not be stopped. (Windows 10). – anishpatel Nov 1 '16 at 21:39
  • 3
    anishpatel: 🎶 You can't stop the beep! 🎶 – Vanessa Phipps Jun 1 '17 at 18:43

Perform the following steps to disable your machine's system beep:

  1. Right-click My Computer and select Manage.
  2. Expand System Tools and select Device Manager.
  3. From the View menu, select Show hidden devices.
  4. Expand Non-Plug and Play Drivers.
  5. Right-click Beep, and select Properties.
  6. Select the Drivers tab.
  7. Click Stop. You can also change the start-up type to Disabled so the beep service never starts.

Ref: http://windowsitpro.com/article/articleid/15508/how-do-i-stop-windows-2000-from-beeping.html

  • 1
    I do not have "Non-Plug and Play Drivers" on Windows 10. – Artem Russakovskii Nov 29 '17 at 22:48

To control the Beep service startup from the command line, disable the service across reboots with:

C:\Windows\system32>sc config beep start= disabled
[SC] ChangeServiceConfig SUCCESS

Re-enable with

C:\Windows\system32>sc config beep start= auto
[SC] ChangeServiceConfig SUCCESS

Note the spacing on the sc config in the above examples, as it has specific requirements.

To do this from Powershell:

PS C:\Windows\System32> set-service beep -startuptype automatic
PS C:\Windows\System32> set-service beep -startuptype disabled
  • Could you add better formatting? The [SC] is part of the output, not the input, as it looks in your post. – mark Aug 16 '09 at 5:49
Set-PSReadlineOption -BellStyle Visual

See https://msdn.microsoft.com/powershell/reference/5.1/PSReadline/Set-PSReadlineOption

  • This does not seem to work for me; it still makes the notification sound when I gc a file that includes a bell character. The page you linked says that option "specifies how PSReadLine responds to various error conditions or user prompts," which I believe is distinct from the handling of the bell character. – Ben N Jan 15 '17 at 21:22
  • Yes, this only effects the keyboard input on Powershell itself not any other programs. Additionally this setting is per session and is not saved. – Scott Markwell Jan 17 '17 at 6:49

Since the other solutions didn't work for me (for example, net stop beep got stuck like this forever: The service is starting or stopping. Please try again later.), the way I disabled the beep/ding in Cmder/ConEmu was by setting the sound for Critical Stop to none in system Sound settings.

No more dings!

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.