fahrrad
Goto Top

Auslesen der paramfile.dat vom Tivoli Endpunkt

Guten Morgen,

ich brauche Hilfe für eine Aufgabe, welche sich über 1500 Server erstreckt....
Ich möchte die aufgabe am liebsten nur mit Batch per psexec erledigen.....

Ich benötige aus der param_file.dat vom Tivoli Endpunkt den Tivoli Disk space thresold alert (%):

[disks_sys_prct]
C 100 96 94
E 100 96 94

Es können natürlich mehrere Laufwerke angeben sein, ich weiß nicht wie viele Laufwerke gemonitort werden.
Der für mich interessante Block wird aber mit einer Leerzeile abgeschlossen.

Ich kann mit FIND oder FINDSTR nach [disks_sys_prct] suchen lassen, wie bekomme ich die danach folgenden Zeilen bis zuim Abschluß durch eine Leerzeile ausgegeben?

Vielen Dank für Eure Hilfe!!!

VG
Fahrrad

Content-ID: 182268

Url: https://administrator.de/contentid/182268

Ausgedruckt am: 23.11.2024 um 13:11 Uhr

rubberman
rubberman 21.03.2012 um 00:02:56 Uhr
Goto Top
Hallo Fahrrad.

Ich kenne den Aufbau einer solchen Datei nicht, deshalb hoffe ich mal, die Zeilen haben einen Windows-Zeilenumbruch <CR><LF>.
Teste folgende paar Zeilen:
@echo off &setlocal
set "infile=param_file.dat"  

setlocal EnableDelayedExpansion
for /f "delims=:" %%i in ('findstr /nc:"[disks_sys_prct]" "%infile%"') do set /a Start=%%i  
for /f "delims=:" %%i in ('findstr /vn . "%infile%"') do if not defined Stop if %%i gtr !Start! set /a Stop=%%i-2  
<"%infile%" (  
  for /l %%i in (1 1 %Start%) do set /p "="  
  for /l %%i in (%Start% 1 %Stop%) do set /p "ln=" &echo !ln!  
)
pause

Grüße
rubberman
Fahrrad
Fahrrad 21.03.2012 um 08:37:13 Uhr
Goto Top
Hallo Rubberman,

vielen Dank für Deine Hilfe, ich werde Dein Skript mal geneuaer anschauen und testen.

Das Setzen der Variable für Start klappt bestens, es hapert scheinbar beim Setzen von Stop, sollte ja die erste Leerzeile nach %Start% sein.

Die param_file.dat ist ähnlich wie eine INI Datei mit Sektionen aufgebaut: zB

[Sektion01]
halloo;0 0
test1234;0 00
Haus;0 0
test1;0 0

[sektion02]
Name
name1

[disks_sys_prct]
C 100 90 80
D 100 90 80


[usw]


[uswusw]
blablabla

Für mich wie erwähnt nur die Sektion mit den darauf folgenden zeilen bis zur nächsten Leerzeile wichtig, in diesem beispiel also
C 100 90 80
D 100 90 80

Vielen Dank & viele Grüße
Fahrrad
rubberman
rubberman 21.03.2012 um 09:56:29 Uhr
Goto Top
Hallo Fahrrad,

dann lass doch die beiden Variablen mal per ECHO ausgeben. Start muss die Zeilennummer für die Zeile [disks_sys_prct] ergeben, Stop + 2 die Leerzeile. Bitte beachte, dass die Leerzeile auch wirklich leer ist und schau dir ggf. im Hex Editor an, welchen Zeilenumbruch dir das Programm liefert (soll: 0D 0A).

Grüße
rubberman
Fahrrad
Fahrrad 21.03.2012 um 10:20:05 Uhr
Goto Top
Moin Rubberman,

ich steh auf dem Schlauch, die Variablen Start und Stop sind jetrzt so gesetzt, daß Start= 13 und Stop=14 ist, abe rich bekomme die Ausgabe genau dieser beiden zeilen per Echo nicht hin ;o(

VG
Fahrrad
rubberman
rubberman 21.03.2012 um 10:35:58 Uhr
Goto Top
Hallo Fahrrad,

es geht auch in erster Linie nur um die Zeilennummern. Steht in Zeile 13 das [disks_sys_prct] und befindet 2 Zeilen unter Zeile 14 (also in Zeile 16) die Leerzeile?
Wenn ja, passt das schon mal.
Bekommst du überhaupt irgendwas ausgegeben?

Grüße
rubberman
Fahrrad
Fahrrad 22.03.2012 um 11:31:18 Uhr
Goto Top
Hallo Rubberman,

die zeilennummern stimmen ja auch, aber bei der Ausgabe kommt nichts

VG
Fahhrad
rubberman
rubberman 22.03.2012 um 18:55:23 Uhr
Goto Top
Hallo Fahrrad.

Nun lass dir doch nicht jede Info aus der Nase ziehen face-sad
Besteht der Zeilenumbruch nun aus einem Carriage Return + Line Feed alias <CR><LF> alias Hex. 0D 0A alias ASCII Zeichen 13 und 10, oder nicht?
Außerdem wird nach einer Leerzeile gesucht. Steht dort auch nur ein Leerzeichen, ist die Zeile nicht leer.

Ich habe nur die Chance, mit den von dir geposteten Daten zu testen - und damit funktioniert es. Die Originaldatei liegt dir vor und nur du kannst diese Informationen geben.

Grüße
rubberman
Fahrrad
Fahrrad 23.03.2012 um 09:04:09 Uhr
Goto Top
Guten Morgen Rubberman,

ich kann Dich gut verstehen. Der Fehler saß vor dem PC, Keine Ahnung, wa sich gemach haber, den Code nochmal kopüoert und es klappt genauso, wie ich es wünsche

Vielen Dank & viel Grüße
Fahrrad