Powershell: Suche nach bestimmten Inhalten in verschiedenen Dateien
Hallo zusammen
Ich habe eine Datei mit Suchbegriffen (suche.txt)
Ich möchte nun in einem Verzeichnis T die dort liegenden Dateien nach diesen Suchegriffen absuchen und in eine CSV Datei ausgeben. Der folgende Code funktioniert soweit, dass ich eine entsprechende csv Ausgabe erhalte mit Namen der Datei, aber leider bringt er mir nur immer den ersten gefundenen Begriff aus suche.txt als Resultat.
Mein Code:
Da ich mich nicht so gut auskenne und diesen Code mit Infos aus dem Web mit Müh und Not zusammengebaut hab muss ich hier kapitulieren. Hoffe ihr könnt mir helfen. Es soll jeden Suchbegriff aus "suche.txt" abfragen und nicht nur dne ersten.
Danke vielmal
Silence
Ich habe eine Datei mit Suchbegriffen (suche.txt)
Ich möchte nun in einem Verzeichnis T die dort liegenden Dateien nach diesen Suchegriffen absuchen und in eine CSV Datei ausgeben. Der folgende Code funktioniert soweit, dass ich eine entsprechende csv Ausgabe erhalte mit Namen der Datei, aber leider bringt er mir nur immer den ersten gefundenen Begriff aus suche.txt als Resultat.
Mein Code:
#Name der csv-Ausgabedatei
$fileName = 'T:\Suchtest\Resultat_' + (Get-Date -Format yyyy-MM-dd-HH-mm ) + ".csv"
#Pfad in dem gesucht wird
$myDrive = 'T:\Suchtest'
#Gesuchte Wörter
$searchwords = Get-Content 'T:\Suchtest\suche.txt'
#Titelzeile in Ausgabedatei
set-content $fileName -Value "Dateipfad,Treffer"
gci $myDrive -recurse -include *.txt | Select-String -pattern $Searchwords -AllMatches | select PATH , Matches | `
group Path | % { add-content $fileName -Value "$($_.Name) ;$($_.Group| select -ExpandProperty Matches | Sort-Object -Uniqu| select -ExpandProperty Value)" }
Da ich mich nicht so gut auskenne und diesen Code mit Infos aus dem Web mit Müh und Not zusammengebaut hab muss ich hier kapitulieren. Hoffe ihr könnt mir helfen. Es soll jeden Suchbegriff aus "suche.txt" abfragen und nicht nur dne ersten.
Danke vielmal
Silence
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6907473904
Url: https://administrator.de/contentid/6907473904
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
2 Kommentare
Neuester Kommentar
Hi
Cheers briggs
# Name der csv-Ausgabedatei
$fileName = 'T:\Suchtest\Resultat_' + (Get-Date -Format yyyy-MM-dd-HH-mm ) + ".csv"
# Pfad in dem gesucht wird
$myDrive = 'T:\Suchtest'
# Gesuchte Wörter
$searchwords = (Get-Content 'T:\Suchtest\suche.txt' | %{[regex]::Escape($_)}) -join '|'
# Suchen
$result = Get-ChildItem $myDrive -recurse -filter *.txt | Select-String -pattern $Searchwords -AllMatches | group-object Path | %{
[pscustomobject]@{
Dateipfad = $_.Name
Treffer = ($_.Group | select -ExpandProperty Matches | Sort-Object Value -Unique | select -ExpandProperty Value) -join ','
}
}
# und ausgeben
if ($result){
$result | export-csv $filename -Delimiter ";" -NoTypeInformation -Encoding UTF8
}
Cheers briggs