Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
Kommentar vom Moderator Biber am 09.06.2011 um 20:38:05 Uhr
Beitrag verschoben von "Excel" nach "Scriptkrams".
Und auf "erledigt" gesetzt.
GELÖST

Transponieren wiederholen

Frage Entwicklung Batch & Shell

Mitglied: jfish

jfish (Level 1) - Jetzt verbinden

09.06.2011, aktualisiert 20:38 Uhr, 2469 Aufrufe, 3 Kommentare

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
Mitglied: 60730
09.06.2011 um 13:48 Uhr
Moin,

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.
01.
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.
Bitte warten ..
Mitglied: bastla
09.06.2011 um 14:06 Uhr
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:
01.
Sub Importieren() 
02.
Datei = "D:\Server.log" 
03.
AbZeile = 1 
04.
AbSpalte = 1 'Spalte A 
05.
Ueber = Array("Hostname", "cpu", "os", "archit") 'Schreibweise der Feldnamen exakt wie in der Datei 
06.
Delim = " " 
07.
 
08.
Cells(AbZeile, AbSpalte).Resize(1, UBound(Ueber) + 1).Value = Ueber 
09.
Zeile = AbZeile + 1 
10.
Daten = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(Datei).ReadAll, vbCrLf) 
11.
 
12.
Spalten = UBound(Ueber) + 1 
13.
i = 0 
14.
Do 
15.
    If InStr(Daten(i), Ueber(0)) > 0 Then 
16.
        For j = 0 To Spalten - 1 
17.
            Cells(Zeile, AbSpalte + j).Value = Replace(Daten(i + j), Ueber(j) & Delim, "") 
18.
        Next 
19.
        Zeile = Zeile + 1 
20.
        i = i + Spalten 
21.
    Else 
22.
        i = i + 1 
23.
    End If 
24.
Loop While i <= UBound(Daten) 
25.
End Sub
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:
Delim = vbTab
Dass es je "Hostname" immer die gleich Anzahl an Feldern (Zeilen in der Logdatei) gibt, setze ich mal voraus ...

Grüße
bastla
Bitte warten ..
Mitglied: jfish
09.06.2011 um 15:23 Uhr
Hi bastla,

danke, hat geholfen.

Gruß
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel 2007 Transponieren von Gruppen oder Blöcken mit VBA (7)

Frage von Chrissy123 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Windows Server
Server mit Netzwerkaussetzern (18)

Frage von SarekHL zum Thema Windows Server ...

Netzwerke
Vorschlag Hotelverkabelung (14)

Frage von FA-jka zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

Frage von CrystalFlake zum Thema LAN, WAN, Wireless ...