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-ID: 591685

Url: https://administrator.de/forum/powershell-get-content-zeilen-anzeigen-mit-head-591685.html

Ausgedruckt am: 03.04.2025 um 17:04 Uhr

145033
Lösung 145033 29.07.2020 aktualisiert um 10:56:32 Uhr
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.
TK1987
Lösung TK1987 29.07.2020 aktualisiert um 10:59:03 Uhr
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