Wie kann ich einen Sound (CPU Beep oder WAV, egal was) mit dem Windows-Cmd abspielen?
Wie kann ich einen Sound (CPU Beep oder WAV, egal was) mit dem Windows-Cmd abspielen?
Antworten:
Nicht in Windows jetzt, um diese mögliche Lösung zu testen, aber versuchen Sie: "Start"
Ich denke, es wird die WAV-Datei mit dem dazugehörigen Programm öffnen, das Ihr Windows für ".wav" -Dateien hat.
Und beachten Sie, dass dies eine Vermutung ist - jemand mit Windows könnte Ihnen eine bessere Lösung bieten, wenn dies nicht funktioniert
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.
Mit PowerShell kann die System.Media.SoundPlayer
.NET-Klasse geladen werden, mit der eine Wave-Datei abgespielt 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 PlaySync
im zweiten Beispiel verwendet wird, da die asynchrone Standardwiedergabe durch das Schließen des PowerShell-Prozesses unterbrochen wird, wenn dieser wie folgt gestartet wird.)
Und wenn Sie nur das erste abspielen möchten, sagen wir, 5 Sekunden des Tons:
powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").Play(); Start-Sleep -s 5; Exit;
Ein Piepton kann einfach in der normalen Befehlszeile mit echo ^G
(wobei ^G
BEL, ASCII-Zeichen 7, eingefügt mit Ctrl+ G) erzeugt werden, wie in anderen Antworten beschrieben. Der Vollständigkeit halber hier die PowerShell-Methode:
echo ^G
Ja, es ist dasselbe wie das cmd
eine. echo
In PowerShell gibt es einen Alias (dh dasselbe bedeutet) Write-Host
, der etwas auf dem Bildschirm anzeigt (oder bei Windows den 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, mit dem die Bedeutung des nachfolgenden Zeichens geändert wird. Ein Escapezeichen a
zeigt BEL an. Der Vorteil dieses Ansatzes ist, dass er einfacher und sichtbarer ist, wenn er in ein Skript eingegeben wird.
So führen Sie dies in einer Batchdatei aus (erneut Vista oder höher):
powershell -c echo `a
Play()
(asynchron) verwenden, auf ein Semaphor warten und schließen. Semaphoren sind eine sauberere Methode, aber etwas komplizierter. Gerne gehe ich im Chat näher darauf ein .
Installieren Sie VLC. Verwenden Sie den folgenden Befehl. Es startet sehr schnell. Dies ist, was ich auf Windows 7 B / C WM-Player verwendet habe, dauert so lange zu laden, und die / close-Option wurde aus WM-Player entfernt.
vlc.exe --play-and-exit audio.wav
vlc -I dummy --dummy-quiet t.mp3 vlc://quit
von forum.videolan.org/viewtopic.php?t=79516#p262603
(Während ein alter Thread, werden die Leute es auf einer Suche finden). Ich sehe, jemand hat bereits VLC empfohlen. Ich verwende es, um in Windows einen Sound abzuspielen, ohne dass etwas mit Hilfe von Parametern zu sehen ist: "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 lautet --qt-start-minimized. Die Pfade und Anführungszeichen dienen nur zur Veranschaulichung einer typischen Verwendung. Ich habe dies unverändert in XP, 7, 10 verwendet; Ich erwarte, dass Vista und 8.x auch funktionieren.
Wenn ein normaler Piepton in Ordnung ist, wiederholen Sie das Zeichen mit dem Wert 7, das sogenannte Klingelzeichen . Beachten Sie jedoch, dass die Signaltöne ausgeschaltet werden können.
Wenn Sie etwas anderes wollen, müssen Sie eine Anwendung starten, die den Trick macht.
Sie könnten eine einfache Konsolenanwendung schreiben, die die Sounddatei (oder Sound-ID) als Argument verwendet und PlaySound heißt
Eine sehr leichte Lösung ist cmndPlayWAV.jar, die auch unter Linux und OS / X funktioniert. Es hat einen eingebauten Sound, wenn kein Parameter angegeben ist oder Sie den vollständigen Pfad zu einer .wav-Datei angeben können. Im Übrigen konnte man immer eine Audio-Nachricht .wav zur Verwendung mit Windows Recorder erstellen.
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.
Ich benutze mplayer
dafür. Ein bisschen übertrieben, da fast jede Mediendatei abgespielt werden kann. Aktuelle Windows-Builds finden Sie ab 2013 bei spirton . Beispielanwendung:
mplayer c:\windows\media\chimes.wav
Sie sollten mplayer.exe zu Ihrem PATH hinzufügen (siehe Was sind PATH und andere Umgebungsvariablen und wie kann ich sie festlegen oder verwenden? Oder Wie kann ich einen Eintrag über die Befehlszeile dauerhaft an die PATH-Variable des Systems anhängen?) . )
Sie können fmedia verwenden , um eine Audiodatei vom Windows-Terminal aus abzuspielen :
fmedia file.mp3
Mit diesem Befehl wird die Wiedergabe file.mp3
im Vordergrund gestartet und nach Beendigung der Wiedergabe der Datei beendet.
Wenn Sie dies im Hintergrund tun möchten, fügen Sie --background
Ihrem Befehl den Befehl switch hinzu:
fmedia file.wav --background
Dieser Befehl startet einen neuen Prozess im Hintergrund und trennt sich sofort von Ihrer Konsole.
fmedia ist eine portable Anwendung (funktioniert ohne Installation) und verbraucht sehr wenig Systemressourcen. Außerdem ist die Startzeit sofort.
PS Verwenden Sie den Befehl fmedia.exe --install
, um es zu Ihrer %PATH%
Umgebungsvariablen hinzuzufügen , andernfalls müssen Sie es mit vollem Pfad ausführen, z D:\fmedia\fmedia.exe
.
start file.wav
ist eine schlechte Idee. Es kann eine Sekunde dauern, bis ein aufgeblähter Mediaplayer gestartet ist, nur für einen einzelnen Piepton. Außerdem können Dateizuordnungen falsch sein, der Media Player spielt die Datei möglicherweise nicht ab, spielt sie möglicherweise immer wieder ab usw. Die Art und Weise, wie ein einfacher "Piepton" erzeugt wird, ist das Schreibenbeep ^G
. "^ G" ist nicht der Zirkumflex-Akzent gefolgt von einem Großbuchstaben G, sondern ein Sonderzeichen, das Sie durch Drücken von Strg + G einfügen. Es ist eigentlich das BEL-Zeichen mit dem ASCII-Wert 0x07.