Powershell Inhalt von TXT Dateien in zwei Ordnern vergleichen und bei Unstimmigkeit löschen
Hallo!
Möchte mit Powershell den Inhalt von txt Dateien in zwei Ordnern vergleichen und bei Unstimmigkeit löschen.
1. Ordner enthält: 1 Datei "favoriten.txt" in der txt-Datei sind mehrere einzelne Wörter. Diese möchte ich mit dem anderen Ordner erstmal vergleichen.
z.B. favoriten.txt=
1. Wort=test1
2. Wort=test2
3. Wort=test3
4. Wort=test4
2. Ordner enthält: 2 Dateien mit unterschiedlichen txt-Dateinamen. In jeder txt-Datei sind unterschiedliche Wörter.
z.B: txt-Datei1=
1. Wort=test1
2. Wort=test2
3. Wort=test7
4. Wort=test8
z.B. txt-Datei2=
1. Wort=test3
2. Wort=test4
3. Wort=test9
Alle Wörter in "favoriten.txt" kommen im 2. Ordner in den 2 Dateien vor. Nun sollen die Wörter die nicht vorkommen gelöscht werden. In diesem Beispiel also aus txt-Datei 1= 3.Wort=7 & 4. Wort=8. Weiterhin aus txt-Datei 2 = 3. Wort=test9
Ziel ist es:
Die Wörter der "favoriten.txt" die im 1.Ordner sind sollen mit dem im 2. Ordner verglichen werden. Falls der Inhalt des 1. Ordners nicht gleich ist im 2. Ordner, sollen alle andern inhalte im 2. Ordner gelöscht werden.
So ich hoffe ich konnte es eingermaßen erklären was ich möchte. Ich hoffe es gibt eine Lösung dafür.
Danke schön.
Gruß Frank
Möchte mit Powershell den Inhalt von txt Dateien in zwei Ordnern vergleichen und bei Unstimmigkeit löschen.
1. Ordner enthält: 1 Datei "favoriten.txt" in der txt-Datei sind mehrere einzelne Wörter. Diese möchte ich mit dem anderen Ordner erstmal vergleichen.
z.B. favoriten.txt=
1. Wort=test1
2. Wort=test2
3. Wort=test3
4. Wort=test4
2. Ordner enthält: 2 Dateien mit unterschiedlichen txt-Dateinamen. In jeder txt-Datei sind unterschiedliche Wörter.
z.B: txt-Datei1=
1. Wort=test1
2. Wort=test2
3. Wort=test7
4. Wort=test8
z.B. txt-Datei2=
1. Wort=test3
2. Wort=test4
3. Wort=test9
Alle Wörter in "favoriten.txt" kommen im 2. Ordner in den 2 Dateien vor. Nun sollen die Wörter die nicht vorkommen gelöscht werden. In diesem Beispiel also aus txt-Datei 1= 3.Wort=7 & 4. Wort=8. Weiterhin aus txt-Datei 2 = 3. Wort=test9
Ziel ist es:
Die Wörter der "favoriten.txt" die im 1.Ordner sind sollen mit dem im 2. Ordner verglichen werden. Falls der Inhalt des 1. Ordners nicht gleich ist im 2. Ordner, sollen alle andern inhalte im 2. Ordner gelöscht werden.
So ich hoffe ich konnte es eingermaßen erklären was ich möchte. Ich hoffe es gibt eine Lösung dafür.
Danke schön.
Gruß Frank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 356530
Url: https://administrator.de/forum/powershell-inhalt-von-txt-dateien-in-zwei-ordnern-vergleichen-und-bei-unstimmigkeit-loeschen-356530.html
Ausgedruckt am: 08.04.2025 um 19:04 Uhr
12 Kommentare
Neuester Kommentar

$favorites = gc 'C:\favorites.txt'
gci 'D:\Folder\*.txt' -File | %{
$file2 = gc $_.Fullname
compare $file2 $favorites -IncludeEqual -ExcludeDifferent -PassThru -EA Ignore | sc $_.Fulname
}
Und offline...
Servus Frank,
das sollte nach deiner Beschreibung so aussehen:
Grüße Uwe
das sollte nach deiner Beschreibung so aussehen:
$favorites = @(gc 'D:\ordner1\original.txt')
$folder = 'D:\ordner2'
gci $folder -Filter *.txt -File | %{
$content = @(gc $_.Fullname)
compare $favorites $content -IncludeEqual -ExcludeDifferent -PassThru | out-file $_.Fullname -Force
}
Nein, definitiv doch! Der Grund: hier arbeitet eine simple Foreach-Schleife alle Dateien des Ordners ab, seien es keine, eine oder mehrere das ist vollkommen egal. Vermutlich hast du auch Leerzeichen vor den Zeilenumbrüchen in den Files.
Wenn die Datei schreibgeschützt ist, ist der Force Parameter nötig den ich oben hinzugefügt habe.
??
Wenn die Datei schreibgeschützt ist, ist der Force Parameter nötig den ich oben hinzugefügt habe.
Das im 2. Ordner zwei Dateien in einer txt-Datei sein müssen
Zwei Dateien in einer Textdatei?? Wie soll das bitteschön gehen