Solución:
rundll32.exe Kernel32.dll,Beep 750,300
o
rundll32.exe cmdext.dll,MessageBeepStub
o
rundll32 user32.dll,MessageBeep
Con las funciones rundll no necesitará símbolos especiales como ^G
. Con el primer método también puede configurar la frecuencia y el tiempo que desea que suene.
ACTUALIZAR
otras opciones son:
powershell "[console]::beep(500,300)"
o usando systemSounds.bat
call systemsounds.bat beep
rundll32.exe Kernel32.dll,Beep 750,300
– esto no funciona bien en los sistemas modernos de Windows ya que rundll32 ya no acepta valores enteros a través de la línea de comando y esto reproducirá el pitido con los valores predeterminados que es demasiado largo (y la frecuencia es irritante)
Como la capacidad de emitir pitidos depende también de la placa base y si la placa base tiene un sistema de altavoces, lo que se convierte cada vez más en una rareza, los sistemas dependen cada vez más de los altavoces normales. Entonces, una opción es reproducir sonido a través de ellos. A continuación se muestran algunas opciones:
Usando las capacidades de habla del SAPI.SpVoice
:
mshta "javascript:code(close((V=(v=new ActiveXObject('SAPI.SpVoice')).GetVoices()).count&&v.Speak('beep')))"
Aquí, esto está envuelto en un archivo por lotes y las palabras se pueden pasar como un argumento
SAPI.SpVoice
se puede usar para jugar wav
archivos y tiene algunos que vienen con la instalación de Windows. Puede usar este script:
spplayer.bat "C:WindowsMediaWindows Navigation Start.wav"
Otra opción: usar los objetos de Windows Media Player active-x para reproducir un sonido. En Windows XP no se instaló de forma predeterminada, pero creo que para las versiones más nuevas de Windows sí. También puede jugar mp3
archivos:
call mediarunner.bat "C:WindowsMediaRing03.wav"
Y uno un poco oscuro: usar el <bgsound>
etiqueta de Internet Explorer (que también puede reproducir archivos MP3). Aquí está el guión:
call soundplayer.bat "C:WindowsMediatada.wav"
Y aquí hay una forma de usar el BEL
carácter para producir sonido con un código fácil de copiar y pegar (lo he llamado un beeper.bat
):
@echo off
setlocal
::Define a Linefeed variable
(set LF=^
%=-=%
)
for /f eol^=^%LF%%LF%^ delims^= %%A in (
'forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo(0x07"'
) do echo(%%A
No es posible escribir el BEL
directamente en (por ejemplo) el bloc de notas.
Para obtenerlo, escriba echo ^G>>yourbatch.bat
en la línea de comando (no escriba ^
G
, pero <Control>-G
, que se mostrará como ^G
en la pantalla). Eso pone un personaje de aspecto extraño al final de su archivo. Eso es BEL
carácter 0x007 (“control-G”). Simplemente cópielo / muévalo a cualquier echo
comando, te gusta. También
set /p "input=^Ggive value: "
es posible (donde el ^G
representa ese extraño char)
Se puede utilizar lo siguiente para emitir un pitido
- sin pausar el guion
- sin crear una nueva línea.
- sin requerir el uso de un carácter no imprimible
Echo/| CHOICE /N 2> nul & rem BEL
Es un uso indebido deliberado del comando de elección, que Echo no es nada a través de una tubería a Elección, lo que provoca un error irrefutable. STDERR se redirige a nulo y la solicitud de elección predeterminada se suprime mediante el /N
interruptor, lo que significa que no se emite una nueva línea.
Si por alguna razón desea reutilizar este tono molesto a lo largo de un script, puede definirlo como una macro.
Set "BEL=Echo/| CHOICE /N 2> nul"
%BEL%