Jump to content

mario80

Members
  • Gesamte Inhalte

    2
  • Registriert seit

  • Letzter Besuch

Profile Fields

  • Member Title
    Newbie

Fortschritt von mario80

Rookie

Rookie (2/14)

  • Erste Antwort
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei
  • 1 Jahre dabei

Neueste Abzeichen

10

Reputation in der Community

  1. Perfekt Danke Funktioniert :) ich hab nach Einträgen mit "S" gesucht habs abgeändert und funktioniert sieht folgendermaßen aus: cls $filepath=Get-ChildItem "C:\Logs" $ausgabe="C:\TMP\datei.csv" foreach($file in $filepath){ $server = $file.name.split('-')[0] foreach($line in (get-content $file.FullName)){ if($line -like 'S*'){ $server + ';' + $line| Out-File $ausgabe -Append } } } ---------------------------------------------------------------------------------- Ich hatte einen anderen Ansatz habe aber nur Teilergebnisse rausbekommen und zwar wurden alle Einträge aus der .txt in einer line hintereinander und nicht untereinander ausgegeben als Beispiel: %servername% ; %Eintrag aus txt mit S% ; %Eintrag aus txt mit S% ; usw.... %servername% ; %Eintrag aus txt mit S% ; %Eintrag aus txt mit S% ; usw.... wäre auch interessant zu wissen wo der Fehler war bzw. wie ich die Einträge in meinem Script untereinander rausbekomme? cls $filepath=Get-ChildItem "C:\Logs" $ausgabe="C:\TMP\datei.csv" $inhalte=$servernamen | Get-Content | Select-String -notmatch "#" $filepath | ForEach-Object { $_.Name + ";" + $inhalte } | Out-File $ausgabe --------------------------------------------------------------------------------- Trotzdem Vielen Dank :)
  2. Hallo zusammen, bin neu in der Powershell Welt denke Script ist ganz simpel aber ich komme aus mangelden Kenntnissen einfach nicht weiter, folgende Herausforderung: Ich habe ein Ordner "C:\Logfiles" inhalt von dem Ordner siehr folgendermaßen aus Server001-perfmon.txt Server002-perfmon.txt Server003-perfmon.txt Jede .txt enthält folgenden Inhalt: _________________________________________________________________ ## Memory-Counter 90% GBL_MEM_UTIL wurde entfernt ## S;GBL_MEM_UTIL;;>;90;1-5;06:00;21:00;00:10;critical;OS;Phys. ## # zu Ueberwachenden Performance Kennwerte S;GBL_MEM_UTIL;;>;95;1-5;06:00;21:00;00:10;critical;OS;Phys S;GBL_MEM_UTIL;;>;98;1-5;06:00;21:00;24:00;critical;Basis;Phys S;GBL_CPU_TOTAL_UTIL;;>;90;1-5;06:00;21:00;00:30;warning;OS; _________________________________________________________________ Ich muss jede .txt auslesen und nur Einträge die mit "S" anfangen rausfiltern und nicht die Einträge mit "#", das ganze dann in eine .csv ausgeben! Schwierigkeit daran ist Servernamen "Server001-perfmon.txt" raus zu lesen und zu den Einträgen mit "S" zuzuordnen natürlich aus der richtigen .txt. Ergebnis sollte folgender maßen aussehen: _________________________________________________________________ Server001;S;GBL_MEM_UTIL;;>;95;1-5;06:00;21:00;00:10;critical;OS;Phys Server001;S;GBL_MEM_UTIL;;>;98;1-5;06:00;21:00;24:00;critical;Basis;Phys Server001;S;GBL_CPU_TOTAL_UTIL;;>;90;15;06:00;21:00;00:30;warning;OS; Server002;S;GBL_MEM_UTIL;;>;95;1-5;06:00;21:00;00:10;critical;OS;Phys Server002;S;GBL_MEM_UTIL;;>;98;1-5;06:00;21:00;24:00;critical;Basis;Phys Server002;S;GBL_CPU_TOTAL_UTIL;;>;90;15;06:00;21:00;00:30;warning;OS; Server003;S;GBL_MEM_UTIL;;>;95;1-5;06:00;21:00;00:10;critical;OS;Phys Server003;S;GBL_MEM_UTIL;;>;98;1-5;06:00;21:00;24:00;critical;Basis;Phys Server003;S;GBL_CPU_TOTAL_UTIL;;>;90;15;06:00;21:00;00:30;warning;OS; _________________________________________________________________ Ich bekomme mit meinem Script Daten aus .txt rausgefiltert allerdings weiß ich nicht wie ich die Servernamen zu den ausgelesenen Daten zuorde das ich auch weiß zu welchem Server diese Einträge gehören. -------------------------------------------------------------------------- $filepath="C:\Logfiles" $file="C:\Logfiles\perfmon.csv" Get-ChildItem $filepath | Get-Content | Select-String -notmatch "#" | Out-File $file -------------------------------------------------------------------------- Kann mir jemand bitte helfen, Danke.
×
×
  • Neu erstellen...