Geben Sie einen Ton (vielleicht WAV?) Vom Windows-Befehl aus

48464
Thiago Belem

Wie kann ich mit Windows cmd einen Sound abspielen (CPU Beep oder wav, egal was)?

19
Die Verwendung von "start file.wav" ist eine schlechte Idee. Es kann eine Sekunde dauern, bis ein aufgeblähter Mediaplayer nur für einen einzelnen Piepton gestartet wird. Außerdem sind Dateizuordnungen möglicherweise falsch, der Mediaplayer spielt die Datei möglicherweise nicht oder wiederholt sie usw. Die * * * * * * * * * * * * * * * * * * * * * * * * * Ein einfacher "Piepton" besteht im Schreiben von "Beep ^ G". "^ G" ist ** nicht ** der Zirkumflexakzent gefolgt von einem Großbuchstaben G, sondern ein Sonderzeichen, das Sie durch Drücken von Strg + G einfügen. Es ist tatsächlich das BEL-Zeichen mit dem ASCII-Wert 0x07. Andreas Rejbrand vor 13 Jahren 4

12 Antworten auf die Frage

41
Bob

Sie können dies nativ mit PowerShell tun. PowerShell ist in Windows Vista und höher enthalten und kann für ältere Versionen von Microsoft heruntergeladen werden.


Wave-Dateien

PowerShell kann zum Laden der System.Media.SoundPlayer.NET-Klasse verwendet werden, die zum Abspielen einer Wave-Datei verwendet werden kann.

(New-Object Media.SoundPlayer "C:\WINDOWS\Media\notify.wav").Play(); 

Wenn Sie möchten, können Sie dies über die normale Befehlszeile ausführen:

powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").PlaySync(); 

(Beachten Sie, dass dies PlaySyncim zweiten Beispiel verwendet wird, da die asynchrone Standardwiedergabe durch das Schließen des PowerShell-Prozesses unterbrochen würde, wenn Sie auf diese Weise gestartet werden.)

Und wenn Sie nur die ersten 5 Sekunden des Sounds spielen wollten:

powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").Play(); Start-Sleep -s 5; Exit; 

Signalton

Ein Piepton kann leicht in der normalen Befehlszeile mit echo ^G(dabei ^GBEL, ASCII-Zeichen 7, eingefügt mit Ctrl+ G) erfolgen, wie in anderen Antworten beschrieben. Im Interesse der Vollständigkeit ist hier die PowerShell-Methode:

echo ^G 

Ja, es ist das gleiche wie das cmdeine. echoIn PowerShell ist ein Alias ​​(dh dasselbe bedeutet) an Write-Host, der etwas auf dem Bildschirm anzeigt (oder im Fall von den Windows-Benachrichtigungston auslöst BEL).

Eine alternative Methode in PowerShell besteht darin, die Escape-Sequenz für BEL zu verwenden, anstatt ein literales BEL-Zeichen mit Ctrl+ einzufügen G:

echo `a 

`ist das Escape-Zeichen von PowerShell, das die Bedeutung des Zeichens danach ändert. Ein entflohenes azeigt BEL an. Der Vorteil dieses Ansatzes ist, dass er einfacher und besser sichtbar ist, wenn er in ein Skript eingegeben wird.

So führen Sie dies in einer Batchdatei (wieder Vista oder höher) aus:

powershell -c echo `a 

Quelle

Ist es möglich, diesen Befehl auch zu beenden und wav-Dateien vor dem Ausführen der neuen wav-Datei abzuspielen? Dodd10x vor 9 Jahren 0
@ Dodd10x Nicht einfach für globales Audio, nein. Könnten Sie mehr Kontext angeben? Wollen Sie töten oder pausieren? Ist der andere Spieler eine andere Instanz dieses Skripts oder ein Mediaplayer oder ein Browser, ein Spiel usw.? Wenn es sich um eine andere Instanz desselben Skripts handelt, ist es viel einfacher (wenn auch nicht völlig trivial). Bob vor 9 Jahren 0
Es ist eine andere Instanz des gleichen Skripts. Ich denke, ich könnte zuerst eine Zeile hinzufügen, um powershell.exe in der Aufgabenliste zu töten Dodd10x vor 9 Jahren 0
@ Dodd10x Es gibt zwei Möglichkeiten, die ich vorschlagen würde. Eine ist, die Prozess-ID der PowerShell-Instanz abzurufen und in einer Datei zu speichern. Diese ID wird am Anfang einer neuen Instanz gelöscht (und die Datei wird gelöscht). Dies ist sicherer, als alle PS-Prozesse zu beenden. Die andere Möglichkeit wäre, ein Semaphor (Flag / Signal) in PowerShell zu verwenden - Sie würden das Semaphor signalisieren, `Play ()` (async) verwenden, auf ein Semaphor warten und schließen. Semaphore sind ein sauberer Weg, aber etwas komplizierter. Ich würde gerne weiter ins Detail gehen [im Chat] (http://chat.stackexchange.com/rooms/118/root-access). Bob vor 9 Jahren 0
10
theMike
echo ^G 

Wo ^Gist CTRL + Goder Alt + 7auf der Tastatur?

3
Mark Ribau

Installieren Sie VLC. Verwenden Sie den folgenden Befehl. Es startet wirklich sehr schnell. Das ist, was ich unter Windows 7 b / c wmplayer verwendet habe, das Laden dauert so lange, und die Option / close wurde aus wmplayer entfernt.

vlc.exe --play-and-exit audio.wav 
Leider läuft das im Vordergrund honzajde vor 7 Jahren 0
Ja, dies sollte die Methode wmplayer ersetzen, da sie langsam geladen wurde und die Unterstützung für das Argument / close entfernt wurde. Die PowerShell-Methode ist wahrscheinlich die beste Wahl. Mark Ribau vor 7 Jahren 0
2
yuliskov

Workaround (eine Art):

1) Audio-Datei ausführen

2) Warten Sie, bis der Titel endet (in meinem Fall sind es 5 Sekunden), und schließen Sie den Media Player

start wmplayer "C:\Windows\Media\Alarm10.wav" && timeout 5 && taskkill /im wmplayer.exe 
1
Michael Madsen

Wenn ein normaler Piepton in Ordnung ist, wiederholen Sie das Zeichen mit dem Wert 7, das sogenannte Glockenzeichen . Beachten Sie jedoch, dass Pieptöne deaktiviert werden können.

Wenn Sie etwas anderes möchten, müssen Sie eine Anwendung starten, die den Trick erfüllt.

1
John Knoeller

Sie könnten eine einfache Konsolenanwendung schreiben, die die Sounddatei (oder die Sound-ID) als Argument verwendet und PlaySound nennt

1
pol098

(Während eines alten Threads finden die Leute ihn bei einer Suche). Ich sehe, dass jemand VLC bereits empfohlen hat. Ich benutze es, um einen Sound in Windows abzuspielen, ohne dass die folgenden Parameter sichtbar sind: "c: \ Programme (x86) \ videolan \ vlc \ vlc.exe" --qt-start-minimized --play-and-exit "c: \ Programme (x86) \ videolan \ vlc \ Windows Exclamation.wav "

Der Hauptzusatz zum vorherigen Kommentar ist --qt-start-minimized. Die Pfade und Anführungszeichen dienen lediglich der typischen Verwendung. Ich habe dies in XP unverändert verwendet, 7, 10; Ich erwarte, dass Vista und 8.x auch funktionieren.

1
budrow1138

Eine sehr leichte Lösung ist cmndPlayWAV.jar, die auch unter Linux und OS / X funktioniert. Es ist ein Sound eingebaut, wenn kein Parameter angegeben ist oder Sie den vollständigen Pfad zu einer .wav-Datei angeben können. Übrigens könnte man immer eine Audionachricht machen, die mit Windows Recorder verwendet werden soll.

Willkommen bei Super User! Bitte lesen Sie [Wie empfehle ich Software] (https://meta.superuser.com/questions/5329/how-do-i-recommend-software-in-my-answers/5330#5330), um einige Tipps zu erhalten Sie sollten Software empfehlen. Sie sollten mindestens einen Link sowie einige zusätzliche Informationen über die Software selbst und deren Verwendung zur Lösung des Problems in der Frage angeben. DavidPostill vor 7 Jahren 0
0
Mr. Shiny and New 安宇

Auf XP mache ich das

start /min mplay32 /play /close %WINDIR%\media\tada.wav 

Es ist nicht ideal, aber es ist wirklich einfach und es funktioniert.

0
n611x007

Ich benutze mplayerdafür. Ein bisschen übertrieben, da es fast jede Mediendatei abspielen kann. Neuere Windows-Builds sind ab 2013 bei spirton zu finden . Verwendungsbeispiel:

mplayer c:\windows\media\chimes.wav 

Sie sollten mplayer.exe zu Ihrer hinzufügen PATH (siehe Was sind PATH und andere Umgebungsvariablen, und wie kann ich oder sie verwenden? Oder Wie kann ich dauerhaft einen Eintrag in die Systemvariable PATH, über die Befehlszeile anhängen? Dies zu tun. )