So ersetzen Sie ein Wort in mehreren Textdateien unter Windows 10

Texteditoren wie Notepad und Notepad++ sind vielseitige Werkzeuge zum Erstellen verschiedenster Dateiformate, darunter Untertiteldateien, Logdateien, Batch-Skripte oder PowerShell-Skripte. Neben dem Erstellen ermöglichen diese Editoren auch die Bearbeitung der Dateien. Eine häufige Aufgabe ist das Ersetzen von Wörtern in mehreren Textdateien. Anstatt jede Datei einzeln zu öffnen, kann dies effizient mit einem PowerShell-Skript erledigt werden. Dieser Ansatz ist nicht nur auf TXT-Dateien beschränkt, sondern lässt sich auf alle von einem Texteditor verarbeitbaren Dateitypen anwenden. So können Sie ein bestimmtes Wort in einer Vielzahl von Dateien gleichzeitig austauschen.

Wörter in Textdateien ersetzen – ein Leitfaden

Um zu beginnen, ist es ratsam, alle zu bearbeitenden Textdateien in einem einzigen Ordner abzulegen. Das Skript durchsucht bei der Ausführung nur ein bestimmtes Verzeichnis und nicht das gesamte System. Die Konzentration auf einen einzelnen Ordner vereinfacht den Prozess.

Erstellen Sie eine neue Datei in Notepad und fügen Sie den folgenden Code ein:

Get-ChildItem 'Pfad-zu-den-Dateien*.txt' -Recurse | ForEach {
(Get-Content $_ | ForEach { $_ -replace 'Zu-ersetzendes-Wort', 'Neues-Wort' }) |
Set-Content $_
}

Dieses Skript muss an Ihre Bedürfnisse angepasst werden. Ersetzen Sie zunächst den Platzhalter „Pfad-zu-den-Dateien“ durch den tatsächlichen Pfad zu dem Ordner, der Ihre Textdateien enthält. Als Nächstes ersetzen Sie „Zu-ersetzendes-Wort“ mit dem Wort, das Sie austauschen möchten. Zum Schluss setzen Sie „Neues-Wort“ mit dem gewünschten Ersatzwort ein. Ein konkretes Beispiel: Nehmen wir an, mehrere Textdateien enthalten das Wort „Post“, welches ich durch „Artikel“ ersetzen möchte. Das angepasste Skript würde wie folgt aussehen:

Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt' -Recurse | ForEach {
(Get-Content $_ | ForEach { $_ -replace 'Post', 'Artikel' }) |
Set-Content $_
}

Nachdem Sie das Skript entsprechend bearbeitet haben, speichern Sie es mit der Dateiendung .ps1. Achten Sie beim Speichern im Notepad-Dialog darauf, den Dateityp von „Textdateien“ auf „Alle Dateien“ umzustellen. Nun kann das Skript ausgeführt werden, um die Ersetzung durchzuführen.

Um dasselbe Skript für andere Dateitypen wie XML- oder LOG-Dateien zu verwenden, ändern Sie lediglich die Dateiendung in der ersten Zeile. Beispielsweise wird aus diesem Eintrag:

Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.txt'

dieser Eintrag:

Get-ChildItem 'C:UsersfatiwDesktopnotepad-files*.xml'

Ein wichtiger Hinweis zu diesem Skript ist, dass es keine exakte Wortübereinstimmung verwendet. Das bedeutet, wenn Sie beispielsweise jedes Vorkommen von „das“ durch „ein“ ersetzen, werden auch Teilwörter wie „das“ in „diese“ und „dass“ ersetzt. Dies ist eine Einschränkung des Skripts. Um dieses Problem zu umgehen, bietet sich die Verwendung von Notepad++ an, das über eine Option zur exakten Wortübereinstimmung verfügt.