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-ID: 278718

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

Ausgedruckt am: 15.11.2024 um 05:11 Uhr

114757
114757 30.07.2015 um 11:22:49 Uhr
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
Endoro
Endoro 31.07.2015 um 14:25:37 Uhr
Goto Top
Hey,
ein klassischer sed-Job face-smile
sed -i "s/GHTZ23/Test123/g;s/BHGR44/Test789/g" *.txt  
Gruß, Endoro
114757
114757 31.07.2015 aktualisiert um 14:30:37 Uhr
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