Sie sagen, Sie verwenden die Windows-Befehlsshell, aber die erste von Ihnen angezeigte Befehlszeile (die "for file in" beginnt) sieht nicht wie Windows aus, sondern eher wie eine Art Linux-Shellbefehl. Die zweite Funktion funktioniert nicht, da ffmpeg keinen Platzhalter als Eingabedateispezifikation akzeptiert.
Dieser einzeilige Windows-Befehl macht das, was Sie zu wollen scheinen, damit ffmpeg (mit Ihren Optionen oben) jede flac-Datei im aktuellen Ordner als Eingabe übernimmt und im selben Ordner eine mp3-Datei mit derselben Datei ausgibt Name vor der Erweiterung:
Bei Aufforderung:
for %A in (*.flac) do ffmpeg -i "%~nA.flac" -c:v copy -b:a 320k "%~nA.mp3"
Wenn die MP3-Datei bereits vorhanden ist, werden Sie von ffmpeg gefragt, ob Sie sie überschreiben möchten.
Hinweis: Der obige Befehl wurde für die Befehlszeile erstellt. Es funktioniert nicht in einem Batch-Skript. Dafür müssen Sie alle Prozentzeichen (%) auf diese Weise verdoppeln
Im Batch-Skript (cmd):
for %%A in (*.flac) do ffmpeg -i "%%~nA.flac" -c:v copy -b:a 320k "%%~nA.mp3"