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-Key: 182268

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

Printed on: April 20, 2024 at 03:04 o'clock

Member: rubberman
rubberman Mar 20, 2012 at 23:02:56 (UTC)
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
Member: Fahrrad
Fahrrad Mar 21, 2012 at 07:37:13 (UTC)
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
Member: rubberman
rubberman Mar 21, 2012 at 08:56:29 (UTC)
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
Member: Fahrrad
Fahrrad Mar 21, 2012 at 09:20:05 (UTC)
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
Member: rubberman
rubberman Mar 21, 2012 at 09:35:58 (UTC)
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
Member: Fahrrad
Fahrrad Mar 22, 2012 at 10:31:18 (UTC)
Goto Top
Hallo Rubberman,

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

VG
Fahhrad
Member: rubberman
rubberman Mar 22, 2012 at 17:55:23 (UTC)
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
Member: Fahrrad
Fahrrad Mar 23, 2012 at 08:04:09 (UTC)
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