Powershell Skript Datei mit bestimmten Inhalt finden und dann Datei löschen
Hallo Mitnander,
Ich versuche vergeblich mit der Powershell Dateien zu löschen die einen bestimmten Textinhalt haben..
Mein bisheriges Script:
If (Get-childitem "PFAD\*" | select-string -pattern 'Datei wurde fehlerfrei verarbeitet','Die Datei konnte ohne Kernprüffehler verarbeitet werden')
{
Remove-Item -Path "PFAD"\*
}
Natürlich wird der gesmate Inhalt des Ordners gelöscht. Weis jemand wie ich nur die Dateien lösche die den angegebenen String enthalten?
Ich versuche vergeblich mit der Powershell Dateien zu löschen die einen bestimmten Textinhalt haben..
Mein bisheriges Script:
If (Get-childitem "PFAD\*" | select-string -pattern 'Datei wurde fehlerfrei verarbeitet','Die Datei konnte ohne Kernprüffehler verarbeitet werden')
{
Remove-Item -Path "PFAD"\*
}
Natürlich wird der gesmate Inhalt des Ordners gelöscht. Weis jemand wie ich nur die Dateien lösche die den angegebenen String enthalten?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 614776
Url: https://administrator.de/forum/powershell-skript-datei-mit-bestimmten-inhalt-finden-und-dann-datei-loeschen-614776.html
Ausgedruckt am: 30.12.2024 um 17:12 Uhr
21 Kommentare
Neuester Kommentar
Hi,
das wird so nicht funktionieren.
Du willst doch sicherlich folgendes umsetzen:
1. alle Dateien auflisten
2. für jede:
a) Einlesen
b) Treffer suchen
c) wenn Treffer-Anzahl > 0, dann Datei löschen
Führe doch einfach mal nur das aus:
und schau Dir das Ergebnis an. Und dann überlege mal, warum das "IF" damit nicht funktioniert.
Außerdem
ist eine von allem anderen vollkommen unabhängige Anweisung, alle Dateien im "PFAD" zu löschen. Da musst Du Dich nicht wundern.
E.
das wird so nicht funktionieren.
Du willst doch sicherlich folgendes umsetzen:
1. alle Dateien auflisten
2. für jede:
a) Einlesen
b) Treffer suchen
c) wenn Treffer-Anzahl > 0, dann Datei löschen
Führe doch einfach mal nur das aus:
Get-childitem "PFAD\*" | select-string -pattern 'Datei wurde fehlerfrei verarbeitet','Die Datei konnte ohne Kernprüffehler verarbeitet werden'
Außerdem
Remove-Item -Path "PFAD"\*
E.
Schau mal z.B. hier:
https://stackoverflow.com/questions/8153750/how-to-search-a-string-in-mu ...
https://stackoverflow.com/questions/8153750/how-to-search-a-string-in-mu ...
Zitat von @AlexFM:
Danke für den Link, konnte nur leider kein Ergenis mit den Vorschlägen der Seite erzielen...
Wirklich nicht?!Danke für den Link, konnte nur leider kein Ergenis mit den Vorschlägen der Seite erzielen...
Get-ChildItem PFAD | Select-String 'Datei wurde fehlerfrei verarbeitet','Die Datei konnte ohne Kernprüffehler verarbeitet werden' -List | Select Path
Hinten dran ein ForEach und fertig.
Benutze doch bitte Code-Tags!
Korrekt muss es lauten:
Beachte das "$_.Path" im letzten Befehl.
Korrekt muss es lauten:
Get-childitem "C:\Pfad\TESTZIEL\*" | select-string "Datei wurde fehlerfrei verarbeitet","Die Datei konnte ohne Kernprüffehler verarbeitet werden" -List | Select Path | Foreach {Remove-Item -Path $_.Path -force}
???
Hier ist Select-String erklärt:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Da gibt es einen Parameter "-Encoding". Damit experimentieren.
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Da gibt es einen Parameter "-Encoding". Damit experimentieren.
Was nicht?