Text in mehreren .docx suchen und ersetzen
Moin Kollegen.
Ich hoffe auf Antworten von Leuten, die genau das per Tool schon mal gemacht haben:
Selektiere mehrere Ordner und suche dort in allen .docx (nicht .doc!) nach einem bestimmten Text und ersetze diesen.
Es scheitert bei diversen Tools daran, dass sie nicht mit docx umgehen können. Ein simples Word-Makro bekommt das auch ganz gut hin, jedoch scheitert es daran, dass man mit diesem Makro zwar multiselect auf Freigaben machen kann, nicht aber auf Sharepoint-Webdavverzeichnissen... was leider ebenso gefordert ist.
Ich hoffe auf Antworten von Leuten, die genau das per Tool schon mal gemacht haben:
Selektiere mehrere Ordner und suche dort in allen .docx (nicht .doc!) nach einem bestimmten Text und ersetze diesen.
Es scheitert bei diversen Tools daran, dass sie nicht mit docx umgehen können. Ein simples Word-Makro bekommt das auch ganz gut hin, jedoch scheitert es daran, dass man mit diesem Makro zwar multiselect auf Freigaben machen kann, nicht aber auf Sharepoint-Webdavverzeichnissen... was leider ebenso gefordert ist.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 353463
Url: https://administrator.de/forum/text-in-mehreren-docx-suchen-und-ersetzen-353463.html
Ausgedruckt am: 06.04.2025 um 05:04 Uhr
14 Kommentare
Neuester Kommentar
Sorry... das o.g. Programm kann leider nur xml und html.
Das hätte ich noch im Angebot ... ist wohl auf Batch-Basis.
1
Ich bin mir allerdings sicher, dass man da etwas mit Powershell basteln kann.
Das hätte ich noch im Angebot ... ist wohl auf Batch-Basis.
1
Ich bin mir allerdings sicher, dass man da etwas mit Powershell basteln kann.

Hallo,
Dann benenn' die doch in .zip um - dann hast Du was zum auspacken. Ernsthaft - das sind einfach "nur" ZIP-Archive mit XML-Dateien. K.A., ob Dir das jetzt weiterhilft...
Gruß,
Jörg
Zitat von @DerWoWusste:
Es scheitert bei diversen Tools daran, dass sie nicht mit docx umgehen können.
Es scheitert bei diversen Tools daran, dass sie nicht mit docx umgehen können.
Dann benenn' die doch in .zip um - dann hast Du was zum auspacken. Ernsthaft - das sind einfach "nur" ZIP-Archive mit XML-Dateien. K.A., ob Dir das jetzt weiterhilft...
Gruß,
Jörg
Moin,
genau an diesen Anforderungen bin ich letzte Woche gescheitert.
Das was ich gefunden habe konnte mit DOCX nichts anfangen und die Tools die damit etwas anfangen können, waren zu teuer bzw konnte ich nicht testen, zumal das für einen Kunden aus meiner ehemaligen Selbständigkeit war.
Meine Lösung: Addidas Makro und ein Praktikant, es waren allerdings nur rund 100 docx.
Kannst Du die Sharepoint Dateien u.U. für diese Aktion auf eine Freigabe verschieben und dannach wieder zurück?
Gruß
Nachtrag: Jetzt fällts mir wieder ein, das Problem war die Kopf und Fusszeile, hier sollte was ersetzt werden.
genau an diesen Anforderungen bin ich letzte Woche gescheitert.
Das was ich gefunden habe konnte mit DOCX nichts anfangen und die Tools die damit etwas anfangen können, waren zu teuer bzw konnte ich nicht testen, zumal das für einen Kunden aus meiner ehemaligen Selbständigkeit war.
Meine Lösung: Addidas Makro und ein Praktikant, es waren allerdings nur rund 100 docx.
Kannst Du die Sharepoint Dateien u.U. für diese Aktion auf eine Freigabe verschieben und dannach wieder zurück?
Gruß
Nachtrag: Jetzt fällts mir wieder ein, das Problem war die Kopf und Fusszeile, hier sollte was ersetzt werden.
Servus DWW,
dazu habe ich mal ein kleines Powershell-Script geschrieben um ohne installiertes Word bestimmte Strings im Dokument zu ersetzen.
Da ich hier gerade kein Sharepoint zur Verfügung habe, kann ich mich deinem Problem mit deinen WebDAV Pfaden nicht widmen, aber schnell als Laufwerk mounten sollte ja kein Problem darstellen.
Viel Spaß
Grüße Uwe
dazu habe ich mal ein kleines Powershell-Script geschrieben um ohne installiertes Word bestimmte Strings im Dokument zu ersetzen.
# Benötigt wird mindestens NET-Framework 4.5 und Powershell 3.0
# Ersetzungsteile
$placeholder = "Mustermann"
$replacement = "Meier"
# Pfad inkl Dateifilter
$filespec = "D:\word\*.docx"
# benötigte Assemblies laden
Add-Type -AssemblyName System.IO.Compression
Add-Type -AssemblyName System.IO.Compression.Filesystem
gci $filespec -File | %{
write-host "Working on file '$($_.Fullname)' ..." -F Green
# Word-Dokument als ZIP-Datei im Update-Modus öffnen
$zipfile = [System.IO.Compression.ZipFile]::Open($_.FullName,[System.IO.Compression.ZipArchiveMode]::Update)
# Einträge der benötigte Dateien aus dem Dokument holen
$entries = $zipfile.Entries | ?{$_.FullName -match '^(word/(document|footnotes|endnotes)\.xml|word/(header|footer)\d*\.xml)$'}
$remove = @()
$entries | %{
$tmp = "$env:TEMP\$($_.Name)"
# word/document.xml extrahieren
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_,$tmp)
# Datei als XML Object laden
$xml = new-object xml
$xml.Load($tmp)
if ($xml.DocumentElement.InnerText -match [regex]::Escape($placeholder)){
# Einträge in Nodes ersetzen
$xml.SelectNodes("//*/text()") | ?{$_.InnerText -match [regex]::Escape($placeholder)} | %{$_.InnerText = $_.InnerText -replace [regex]::Escape($placeholder),$replacement}
# XML speichern
$xml.Save($tmp)
# geänderte Datei wieder hinzufügen
[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zipfile,$tmp,$_.FullName) | out-null
$remove += $_
}
# Temporäre Files löschen
del $tmp -Force -ErrorAction SilentlyContinue
}
# lösche ersetzte Dokumentteile im ZIP
$remove | %{$_.Delete()}
# Zipfile-Resourcen freigeben
$zipfile.Dispose()
}
Viel Spaß
Grüße Uwe
Also für Sharepoint und Document Libraries gibt es nativen Support für Powershell und Checkout() und Checkin() Methoden für die Dokumente.
Natürlich dann die ganze Liste der Files durchackern/filtern.
Leider mangels Sharepoint kann ich es hier leider nicht evaluieren und dir was skripten.
$site = Get-SPWeb "<URL>"
$site.GetFile("FILEXYZ").CheckOut()
Leider mangels Sharepoint kann ich es hier leider nicht evaluieren und dir was skripten.
Sollte dir auch helfen --> nach dem Checkout kopieren eines Files lokal:
http://www.jbmurphy.com/2012/04/25/powershell-script-to-copy-a-sharepoi ...
Dann kannst du es bearbeiten und wieder hochladen.
Entsprechende Methoden zum Upload hier zu finden
https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile_met ...
http://www.jbmurphy.com/2012/04/25/powershell-script-to-copy-a-sharepoi ...
Dann kannst du es bearbeiten und wieder hochladen.
Entsprechende Methoden zum Upload hier zu finden
https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile_met ...