Auslesen von Cropwerten aus einer Textdatei
Hallo Leute,
Ich habe bereits mehrere Probleme bei der Batchprogrammierung gehabt, die jedoch fast alle durch Beiträge in diesem Forum beantwortet wurden. Das ist auch der Grund, weshalb ich mich hier angemeldet habe.
So, dann also zum für mich bisher unlösbaren Problem:
Ich sehe unterwegs gerne Filme auf meinem Palm und encodiere und konvertiere deshalb ab und an DVDs bzw. Videos. Bevor ich mir ein kleines Batchscript geschrieben hatte, habe ich meine Videos mit dem MEncoder "per Hand" encodiert. Nun habe ich mir eine Batchdatei erstellt, die das ganze automatisieren soll. Bisher allerdings lasse ich mir in der Konsole die Cropwerte mit dem MPlayer anzeigen und muss sie dann wiedereinmal per Hand in einen String eingeben. Ich kann mir mit dem MPlayer eine Textdatei erstellen lassen, in der die Cropwerte notiert sind, allerdings möchte ich auf andere Programme verzichten, also darauf die Textstelle mit eine Hochsprache wie Java oder C++ auszulesen. Stattdessen wollte ich das direkt mit dem Batchscript machen, allerdings komme ich mit den for-Schleifen nicht ganz klar und weiß nicht, wie ich die Textstelle in einen String bzw. mehrere Variablen lesen soll.
Die Textdatei sieht am Ende so aus:
es interessiert mich aber nur der Teil hinter crop=:
Eine weitere Schwierigkeit ist, dass die Ziffernfolgen nicht bei jedem Video die gleiche Länge haben so könnten andere Cropwerte beispielsweise so aussehen: 704:432:10:80
Ich könnte mir das so vorstellen: Nach dem ersten "=" in der Zeile suchen und den Teil danach auslesen und ")." abschneiden. Ich weiß allerdings weder, wie ich die vorvorvorvorletzte Zeile auslese, noch, wie ich diese "beschneide".
Wenn es also überhaupt eine Möglichkeit gibt, dieses Problem mit einer Batchdatei zu bewerkstelligen, wäre ich um jede Hilfe und Bemühung dankbar.
Gruß Bimbie
Die Textdatei sieht am Ende so aus:
[...]
A: 792.9 V: 792.9 A-V: 0.001 ct: -0.161 434/434 3% 0% 24.0% 6 0 [CROP] Crop area: X: 2..717 Y: 71..505 (-vf crop=704:432:8:74).
A: 792.9 V: 793.0 A-V: -0.031 ct: -0.164 435/435 3% 0% 24.0% 6 0 [CROP] Crop area: X: 2..717 Y: 71..505 (-vf crop=704:432:8:74).
A: 793.1 V: 793.0 A-V: 0.061 ct: -0.164 436/436 3% 0% 24.0% 6 0
Exiting... (Quit)
A: 792.9 V: 792.9 A-V: 0.001 ct: -0.161 434/434 3% 0% 24.0% 6 0 [CROP] Crop area: X: 2..717 Y: 71..505 (-vf crop=704:432:8:74).
A: 792.9 V: 793.0 A-V: -0.031 ct: -0.164 435/435 3% 0% 24.0% 6 0 [CROP] Crop area: X: 2..717 Y: 71..505 (-vf crop=704:432:8:74).
A: 793.1 V: 793.0 A-V: 0.061 ct: -0.164 436/436 3% 0% 24.0% 6 0
Exiting... (Quit)
es interessiert mich aber nur der Teil hinter crop=:
704:432:8:74
Eine weitere Schwierigkeit ist, dass die Ziffernfolgen nicht bei jedem Video die gleiche Länge haben so könnten andere Cropwerte beispielsweise so aussehen: 704:432:10:80
Ich könnte mir das so vorstellen: Nach dem ersten "=" in der Zeile suchen und den Teil danach auslesen und ")." abschneiden. Ich weiß allerdings weder, wie ich die vorvorvorvorletzte Zeile auslese, noch, wie ich diese "beschneide".
Wenn es also überhaupt eine Möglichkeit gibt, dieses Problem mit einer Batchdatei zu bewerkstelligen, wäre ich um jede Hilfe und Bemühung dankbar.
Gruß Bimbie
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 183672
Url: https://administrator.de/contentid/183672
Ausgedruckt am: 28.03.2024 um 22:03 Uhr
5 Kommentare
Neuester Kommentar
morsche,
aber wir haben hier doch eine 1a Tutinummer für das, was man unter for /? nicht verstehen könnte?
wie man das zu einer batch machen kann, das hab ich vergessen. Sollte man aber herausfinden können.
N8 und grünen Haken nicht vergessen.
aber wir haben hier doch eine 1a Tutinummer für das, was man unter for /? nicht verstehen könnte?
- Nach dem ersten "=" in der Zeile suchen und den Teil danach auslesen
C:\>for /f "tokens=2 delims==" %a in ('findstr "crop" "x:\123.txt"') do echo %a
C:\>echo 704:432:8:74).
704:432:8:74).
C:\>echo 704:432:8:74).
704:432:8:74).
C:\>for /f "tokens=2 delims=(=)" %a in ('findstr "crop" "x:\123.txt"') do echo %a
C:\>echo -vf crop
-vf crop
C:\>echo -vf crop
-vf crop
C:\>
- es interessiert mich aber nur der Teil hinter crop=:
- 704:432:8:74
C:\>for /f "tokens=3 delims=(=)" %a in ('findstr "crop" "x:\123.txt"') do echo %a
C:\>echo 704:432:8:74
704:432:8:74
C:\>echo 704:432:8:74
704:432:8:74
C:\>
wie man das zu einer batch machen kann, das hab ich vergessen. Sollte man aber herausfinden können.
N8 und grünen Haken nicht vergessen.
die jedoch fast alle durch Beiträge in diesem Forum beantwortet wurden.
... und wenn man nur ein klitzekleinwenig herumgestöbert hätte oder die Suchfunktion genutzt hätte oder auch ins
Tutorial zur FOR-Schleife geschaut hätte, dann ... klar, bei solchen Überschriften wird der nächste User auch nichts finden ... auslesen von Cropwerten ... Leute Leute ...
nunja, wieder einer mehr für die Sammlung der meist-durchgekauten-Themen ...
@t-mo, was' los, nachtaktiv == erklärungsbereit? Kennt man ja gar nicht mehr von dir
greetz André
Moin,
(ot)
Und wenn ich denn wirklich ueber meinen schatten gesprungen bin, ueberteibs nicht, mit der lobhudelei
Erklaert waere, wenn ich sowohl
Als auch
Hier hingeschrieben haette mit der gegenfrage, wo liegt der unterschied und warum kommt das gleiche dabei raus.
(/ot)
(ot)
Zitat von @Skyemugen:
@t-mo, was' los, nachtaktiv == erklärungsbereit? Kennt man ja gar nicht mehr von dir
Naja, die tatsache, dass ich hier code mit somderzeichen hinterlassen habe, spricht dafuer, dass vaddern des naechtens an der werkbank war. Isch haabe doch gar keine m$ auto zuhause..@t-mo, was' los, nachtaktiv == erklärungsbereit? Kennt man ja gar nicht mehr von dir
Und wenn ich denn wirklich ueber meinen schatten gesprungen bin, ueberteibs nicht, mit der lobhudelei
Erklaert waere, wenn ich sowohl
C:\>for /f "tokens=3 delims=(=)" %a in ('findstr "crop" "x:\123.txt"') do echo %a
C:\>for /f "tokens=2 delims==)" %a in ('findstr "crop" "x:\123.txt"') do echo %a
(/ot)
greetz André
Zurueck