Ich versuche, einen numerischen Wert aus einer ffmpeg-Ausgabe auszugeben und ihn einer Textdatei hinzuzufügen.Suchen Sie einen Wert in einem String und geben Sie ihn über eine Batch-Datei in eine Textdatei aus.
Ich möchte es als eine einzige Zeile aus einer Batch-Datei ausführen, wo ich alle meine Variablen bereits eingerichtet habe, aber ich bin mir nicht sicher, ob es überhaupt möglich ist.
Dies ist die Ausgabezeichenfolge, von wo aus ich will den average
Wert kopieren:
[Parsed_psnr_0 @ 0000000003763ec0] PSNR y:18.250891 u:33.358190 v:36.566447 average:19.962586 min:11.944585 max:41.255356
In diesem Fall 19.962586
, ich habe mehr hundert Dateien zu verarbeiten und die Zahl ist immer anders.
Hier ist ein schwacher Versuch, aus Unwissenheit zu tun, dass:
powershell Get-Content -Path "'D:\work folder\test.txt'" | -match 'average:(.+?) min:' | Out-File -Path "D:\work folder\test_result.txt"
nicht funktioniert und auch nicht die 100 Variationen Ich habe versucht, aber ich habe es als eine grobe Vorstellung davon enthalten, was ich versuche.
Sie können auch den Durchschnittswert mit reinem Batch-Datei Code ziehen. – Squashman
Folgendes ist eine funktionierende Powershell-Lösung, die funktioniert hat: powershell -Command "(Get-Content -Pfad 'C: \ file.txt'). Split ('') | foreach {if ($ _ -match 'average') { $ _ -replace "" "[^^. 0-9]" "", "" | Out-File -FilePath 'D: \ file_output.txt' -Append}} " Gutschrift geht an Adrian C. – secondplace
Dann poste deinen Kommentar als Antwort. – Squashman