Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch - Auslesen einer Zahl mit Kriterien

Frage Entwicklung Batch & Shell

Mitglied: banshe

banshe (Level 1) - Jetzt verbinden

24.10.2012, aktualisiert 09:56 Uhr, 1772 Aufrufe, 7 Kommentare

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:

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
Mitglied: StefanHuber
24.10.2012 um 10:26 Uhr
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
Bitte warten ..
Mitglied: banshe
24.10.2012 um 10:49 Uhr
Hallo Stefan

Danke für den hint - werde es versuchen!

Da es manchmal folgenden Aufbau gibt:
audio stream: 1 format: ac3 (5.1/6.1) language: de aid: 129.

möchte ich gerne nach "language: de aid:" UND "5.1" suchen... wie mache ich ein solches UND?

('find "language: de aid:" & "5.1" ^<"%Ein%" ' )

Funktioniert nicht...


Gruss
banshe
Bitte warten ..
Mitglied: StefanHuber
24.10.2012 um 11:26 Uhr
Versuch ein doppeltes '&&'
Bitte warten ..
Mitglied: bastla
24.10.2012 um 11:46 Uhr
Hallo banshe!

Für eine UND-Verknüpfung musst Du zweimal filtern:
'find "language: de aid:"^<"%Ein%"^|find "5.1"'
Grüße
bastla
Bitte warten ..
Mitglied: banshe
25.10.2012 um 07:27 Uhr
Hallo bastla!

Vielen Dank für deine Antwort!
Funktionier

Wie würde ich in diesem Fall noch ein drittes "find" einbauen?

Folgende Versuche funktionieren nicht:
'find "language: de aid:"^<"%Ein%"^|find "5.1"|find "ac3"'

'find "language: de aid:"^<"%Ein%"^|find "5.1" & "ac3"'

'find "language: de aid:"^<"%Ein%"^|find "5.1" && "ac3"'


Herzlichen Dank
banshe
Bitte warten ..
Mitglied: bastla
25.10.2012 um 09:14 Uhr
Hallo banshe!

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"'
Grüße
bastla
Bitte warten ..
Mitglied: banshe
25.10.2012 um 11:15 Uhr
Hallo bastla!

Herzlichen Dank für deine Hilfe!
Alles geklappt....

banshe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

VB for Applications
gelöst DB-Abfrage in Excel mit Kriterien aus Excel (11)

Frage von JensDND zum Thema VB for Applications ...

Batch & Shell
gelöst Per Batch Datei die Zahl jede Zell in einer Spalte um 10 verkleinern (12)

Frage von ha5257 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(6)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

LAN, WAN, Wireless

Neue Cisco Catalyst-Serie 9000

Information von Kuemmel zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
Windows 10
Netzwerkkarte schaltet sich erst nach dem Logon ein (23)

Frage von DerWoWusste zum Thema Windows 10 ...

Windows Server
Seit IP Umstellung DC DNS Fehler (18)

Frage von Yaimael zum Thema Windows Server ...

Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (16)

Frage von Spitzbube zum Thema Netzwerke ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (15)

Frage von Voiper zum Thema Weiterbildung ...