einzweipolizei
Goto Top

Powershell Get Content Zeilen anzeigen mit head

Hallo sehr geehrtes Forum,

Folgende Situation: ich habe 50 log. Dateien in einem Ordner, bei diesen möchte mit jeweils die 24 Zeile anzeigen lassen (kopiere ich dann in Excel und bearbeite diese weiter)
Ich habe folgendes Problem mit PowerShell:
Ich habe die PowerShell in richtigen Ordner gestartet
Befehl (gc *.log -head 24) gibt mir die ersten 24 Zeilen jeder Datei raus
Befehl (gc *.log -head 24)[-1] gibt die die 24 Zeile raus aber nur von einer Datei! Ich möchte die aber von allen Dateien haben.

Da stimmt doch was nicht mit Powershell?

Content-Key: 591685

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

Printed on: April 16, 2024 at 16:04 o'clock

Mitglied: 145033
Solution 145033 Jul 29, 2020 updated at 08:56:32 (UTC)
Goto Top
ls *.log -File | %{(gc $_.Fullname -head 24)[-1]}
Da stimmt doch was nicht mit Powershell?
Nö, du musst es nur richtig bedienen face-smile.
Member: TK1987
Solution TK1987 Jul 29, 2020 updated at 08:59:03 (UTC)
Goto Top
Moin.

Dafür ist Foreach-Object da.
ls *.log | Foreach-Object {(gc $_)[23]}
(kopiere ich dann in Excel und bearbeite diese weiter)
Würde ich dann auch direkt vom skript erledigen lassen...
# Excel öffnen
$Excel = New-Object -ComObject Excel.Application
[void]$Excel.Workbooks.Add()

# Zeile 24 der Einzelnen Logdateien eintragen
ls *.log | Foreach-Object {$i=1} {
  $Excel.ActiveSheet.Cells($i,1).Value = (gc $_)[23]
  $i++
  }

# Excel Fenster anzeigen lassen
$Excel.Visible = $true
[void][System.Runtime.InteropServices.Marshal]::ReleaseComObject($Excel)

Gruß Thomas