Transponieren wiederholen
Hallo,
Ich habe via Psexec mehrere Server ausgelesen und das Ergebnis in ein Log geschrieben. Der Inhalt im Excel sieht dann so wie unten unter IST. Wie kann ich das Transponieren automatisieren, so das Ergebnis wie unter SOLL (für über 400 Systeme) aussieht.
Danke
Jens
IST:
Hostname srv1
cpu 2
os w2k3
archit 32bit
Hostname srv5
cpu 1
os w2k8
archit 32bit
Hostname srv20
cpu 4
os w2k3
archit 64bit
Hostname srv10
cpu 2
os w2k3
archit 32bit
Hostname srv11
cpu 2
os w2k3
archit 32bit
SOLL:
Hostname CPU OS Aricht
srv4 1 unix 32bit
Ich habe via Psexec mehrere Server ausgelesen und das Ergebnis in ein Log geschrieben. Der Inhalt im Excel sieht dann so wie unten unter IST. Wie kann ich das Transponieren automatisieren, so das Ergebnis wie unter SOLL (für über 400 Systeme) aussieht.
Danke
Jens
IST:
Hostname srv1
cpu 2
os w2k3
archit 32bit
Hostname srv5
cpu 1
os w2k8
archit 32bit
Hostname srv20
cpu 4
os w2k3
archit 64bit
Hostname srv10
cpu 2
os w2k3
archit 32bit
Hostname srv11
cpu 2
os w2k3
archit 32bit
SOLL:
Hostname CPU OS Aricht
srv4 1 unix 32bit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 09.06.2011 um 20:38:05 Uhr
Beitrag verschoben von "Excel" nach "Scriptkrams".
Und auf "erledigt" gesetzt.
Und auf "erledigt" gesetzt.
Content-ID: 167786
Url: https://administrator.de/forum/transponieren-wiederholen-167786.html
Ausgedruckt am: 23.12.2024 um 05:12 Uhr
3 Kommentare
Neuester Kommentar
Moin,
Zwei / drei Zeilen:
Ich hab es lieber, wenn man schreibt:
Ergo?
Anstatt beim Versuch einer Transponieren wiederholen zu transpirieren, gleich richtig machen.
Ich habe via Psexec mehrere Server ausgelesen und das Ergebnis in ein Log geschrieben.
- aha
Der Inhalt im Excel sieht dann so wie unten unter IST. Wie kann ich das Transponieren automatisieren, so das Ergebnis wie unter SOLL (für über 400 Systeme) aussieht.
Zwei / drei Zeilen:
Ich hab es lieber, wenn man schreibt:
- Mit der Befehlskette habe ich dieses Ergebnis bekommen.
echo hier könnte deine Befehlskette stehen
- und dann finde ich es äußert unelegant sich via xyz eine Liste mit sortierung abcde anzufertigen und die dann mit 123 zu 0815xyz umzustricken.
Ergo?
Anstatt beim Versuch einer Transponieren wiederholen zu transpirieren, gleich richtig machen.
Hallo jfish!
Grundsätzlich sehe ich das auch so wie T-Mo ...
... aber wenn Du die Datensammlung jetzt schon mal hast, könntest Du sie in Excel per VBA etwa so importieren:
Mit "Delim" in Zeile 6 ist das Trennzeichen zwischen der Feldbezeichnung ("Hostname") und dem Wert ("srv1") gemeint - lt Deinem Beispiel gehe ich von einem Leerzeichen aus; wäre es ein TAB, müsste die Zeile lauten:
Dass es je "Hostname" immer die gleich Anzahl an Feldern (Zeilen in der Logdatei) gibt, setze ich mal voraus ...
Grüße
bastla
Grundsätzlich sehe ich das auch so wie T-Mo ...
... aber wenn Du die Datensammlung jetzt schon mal hast, könntest Du sie in Excel per VBA etwa so importieren:
Sub Importieren()
Datei = "D:\Server.log"
AbZeile = 1
AbSpalte = 1 'Spalte A
Ueber = Array("Hostname", "cpu", "os", "archit") 'Schreibweise der Feldnamen exakt wie in der Datei
Delim = " "
Cells(AbZeile, AbSpalte).Resize(1, UBound(Ueber) + 1).Value = Ueber
Zeile = AbZeile + 1
Daten = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(Datei).ReadAll, vbCrLf)
Spalten = UBound(Ueber) + 1
i = 0
Do
If InStr(Daten(i), Ueber(0)) > 0 Then
For j = 0 To Spalten - 1
Cells(Zeile, AbSpalte + j).Value = Replace(Daten(i + j), Ueber(j) & Delim, "")
Next
Zeile = Zeile + 1
i = i + Spalten
Else
i = i + 1
End If
Loop While i <= UBound(Daten)
End Sub
Delim = vbTab
Grüße
bastla