thomas1972
Goto Top

Suche ersetzten Inhalt Datei aus gesamten Verzeichnis

Guten Abend,

Ich habe folgendes Problem.
In einem Verzeichnis liegen x Textdateien, nun möchte ich in den Dateien gewisse Wörter ersetzen lassen.
dieses soll für alle Dateien in dem Verzeichnis erfolgen.

z.b.
GHTZ23 soll in Test123
BHGR44 soll in Test789
..
ersetzt werden


Habe hier zwar ein Beispiel gefunden, kann es meinen Bedürfnissen aber nicht anpassen.
Es soll die Möglichkeit bestehen mit einfachsten Mitteln neue Wörter hinzufügen

Const ORDNER = "C:\ordner"  
Const EXTENSION = "txt"  
Set fso = CreateObject("Scripting.Filesystemobject")  
Set regex = CreateObject("vbscript.regexp")  
regex.Global = False: regex.IgnoreCase = True: regex.MultiLine = True
regex.Pattern = "(Parameter)\s*=\s*(\d+)"  

For Each file In fso.GetFolder(ORDNER).Files
	If LCase(fso.GetExtensionName(file.Name)) = LCase(EXTENSION) Then
		strContent = fso.OpenTextFile(file.Path,1).ReadAll()
		set matches = regex.Execute(strContent)
		If matches.Count > 0 Then
			If CDbl(matches(0).submatches(1)) > 0 Then
				fso.OpenTextFile(file.Path,2).Write(regex.Replace(strContent,"$1 = 0"))  
			End If 
		End If
	End If

Danke für eure hilfe

Content-Key: 278718

Url: https://administrator.de/contentid/278718

Printed on: April 19, 2024 at 22:04 o'clock

Mitglied: 114757
114757 Jul 30, 2015 at 09:22:49 (UTC)
Goto Top
Oh je, das "never ending" Find Replace-Thema, gibt's hier schon zum Umfallen Threads noch und nöcher ....
Const ORDNER = "C:\ordner"  
Const EXTENSION = "txt"  
Set fso = CreateObject("Scripting.Filesystemobject")  
Set dic = CreateObject("Scripting.Dictionary")  

dic.add "Suchstring1","Ersetzungsstring1"  
dic.add "Suchstring2","Ersetzungsstring2"  

keys = dic.keys

For Each file In fso.GetFolder(ORDNER).Files
	If LCase(fso.GetExtensionName(file.Name)) = LCase(EXTENSION) Then
	      Set fRead = fso.OpenTextFile(file.Path,1)
              strContent = fRead.ReadAll()
              fRead.Close
	      for i = 0 to keys.count -1
                   strContent = Replace(strContent,keys(i), dic.Item(keys(i)),1,-1,1)
              next
              fso.OpenTextFile(file.Path,2).Write(strContent)
	End If
Next
MsgBox "Finished"  
Set fso = Nothing
Set dic = Nothing
Gruß jodel32
Member: Endoro
Endoro Jul 31, 2015 at 12:25:37 (UTC)
Goto Top
Hey,
ein klassischer sed-Job face-smile
sed -i "s/GHTZ23/Test123/g;s/BHGR44/Test789/g" *.txt  
Gruß, Endoro
Mitglied: 114757
114757 Jul 31, 2015 updated at 12:30:37 (UTC)
Goto Top
@Endoro
Der Thomas darf glaub nur VBS ... hat ich bei Ihm schon mal mit Powershell versucht, erfolglos face-smile Haben die Ihm alles gesperrt.

Gruß jodel32