Batch - Auslesen einer Zahl mit Kriterien
Ich arbeite derzeit an einem Batch und stehe gerade an einem Problem’chen an.
Der Batch Script liest mir ein Textdokument aus und gibt mir die letzte Zahl aus der Zeile aus, in welcher ein „de“ ist.
Das Textdokument sieht wie folgt aus:
Schlussendlich benötige ich nur die letzte Zahl (z.b. 129) ohne dem Punkt am Ende.
Nun möchte ich dass zuerst kontrolliert wird, ob es ein „6.1“ mit „de“ gibt, wenn ja soll er die Zahl entsprechende Zahl (132) nehmen,
wenn nein soll kontrolliert werden, ob es ein „5.1“ mit „de“ gibt, wenn ja soll er die entsprechende Zahl (129) nehmen,
wenn nein soll kontrolliert werden, ob es ein „stereo“ mit „de“ gibt, wenn ja soll er die entsprechende Zahl (135) nehmen,
wenn nein soll kontrolliert werden überhaupt ein „de“ gibt, wenn ja soll er die entsprechende Zahl nehmen.
Ansonnsten soll ein Echo ausgegeben werden….
Mein aktueller Script kann nur auslesen ob es überhaupt ein „de“ gibt…
Wie kann ich die Auswahl zwischen 5.1, 6.1 und stereo realisieren? Bitte um hilfe…
Herzlichen Dank
Der Batch Script liest mir ein Textdokument aus und gibt mir die letzte Zahl aus der Zeile aus, in welcher ein „de“ ist.
Das Textdokument sieht wie folgt aus:
audio stream: 0 format: ac3 (5.1) language: en aid: 128.
audio stream: 1 format: ac3 (5.1) language: de aid: 129.
audio stream: 2 format: ac3 (5.1) language: it aid: 130.
audio stream: 3 format: ac3 (6.1) language: en aid: 131.
audio stream: 4 format: ac3 (6.1) language: de aid: 132.
audio stream: 5 format: ac3 (6.1) language: it aid: 133.
audio stream: 6 format: ac3 (stereo) language: en aid: 134.
audio stream: 7 format: ac3 (stereo) language: de aid: 135.
audio stream: 8 format: ac3 (stereo) language: it aid: 136.
Schlussendlich benötige ich nur die letzte Zahl (z.b. 129) ohne dem Punkt am Ende.
Nun möchte ich dass zuerst kontrolliert wird, ob es ein „6.1“ mit „de“ gibt, wenn ja soll er die Zahl entsprechende Zahl (132) nehmen,
wenn nein soll kontrolliert werden, ob es ein „5.1“ mit „de“ gibt, wenn ja soll er die entsprechende Zahl (129) nehmen,
wenn nein soll kontrolliert werden, ob es ein „stereo“ mit „de“ gibt, wenn ja soll er die entsprechende Zahl (135) nehmen,
wenn nein soll kontrolliert werden überhaupt ein „de“ gibt, wenn ja soll er die entsprechende Zahl nehmen.
Ansonnsten soll ein Echo ausgegeben werden….
Mein aktueller Script kann nur auslesen ob es überhaupt ein „de“ gibt…
set "Ein=Textdokument.txt"
for /f "tokens=10 delims= " %%i in ('find "language: de aid:" ^<"%Ein%" ' ) do (
set GERAUDIO=%%i
)
set GERAUDIO=%GERAUDIO:~0,-1%
Echo German Audio Stream ID is: %GERAUDIO%
Wie kann ich die Auswahl zwischen 5.1, 6.1 und stereo realisieren? Bitte um hilfe…
Herzlichen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 193210
Url: https://administrator.de/forum/batch-auslesen-einer-zahl-mit-kriterien-193210.html
Ausgedruckt am: 18.04.2025 um 03:04 Uhr
7 Kommentare
Neuester Kommentar

Hallo banshe,
vom Prinzip her würde ich es wieder über eine IF Auswahl mit for-Schleifen machen.
Zuerst in einer for-Schleife nach dem Ausdruck 5.1 suchen. Trifft das nicht zu, suchst du in einer weiteren Schleife nach 6.1. Als else kommt dann ja nur noch stereo in Frage...
LG
vom Prinzip her würde ich es wieder über eine IF Auswahl mit for-Schleifen machen.
Zuerst in einer for-Schleife nach dem Ausdruck 5.1 suchen. Trifft das nicht zu, suchst du in einer weiteren Schleife nach 6.1. Als else kommt dann ja nur noch stereo in Frage...
LG

Versuch ein doppeltes '&&'
Hallo banshe!
Dass Versionen 2 und 3 nicht funktionieren können, ist klar ("
Wenn Du Version 1 noch ein Caret spendierst, sollte die funktionieren:
Grüße
bastla
Dass Versionen 2 und 3 nicht funktionieren können, ist klar ("
&
" dient zum Verknüpfen von Befehlen, wobei aber keine Daten weitergegeben werden, und "&&
" detto, allerdings mit der Bedingung, dass der vorige Befehl mit Errorlevel 0 - also ohne Fehler - beendet wurde).Wenn Du Version 1 noch ein Caret spendierst, sollte die funktionieren:
'find "language: de aid:"^<"%Ein%"^|find "5.1"^|find "ac3"'
bastla