Jump to content

mario80

Members
  • Gesamte Inhalte

    2
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von mario80

  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...