Find und Replace Skript für Verzeichnis
Hallo Leute,
zu diesem Thema gibt es ja schon ein paar Beiträge, aber meine "Batch" Kenntnisse reichen nicht aus um diese zu verstehen bzw. auf meine Bedürfnisse anzupassen, ich wollte meine Frage dort jetzt auch nicht reinstellen da der letzte Beitrag von 2011 ist und vielleicht gibts auch ne schöne Lösung mit VBS
Also ich beschreib mal kurz meine Problemstellung:
Ich habe ein Verzeichnis ...\res dort befinden sich mehere (100+) dateien mit den unterschiedlichsten Dateinamen aber immer gleicher Dateiendung...
1. ich müsste also alle Dateien dieses Typs öffnen und reingucken
im Prinzip sind es Textdateien, dort werden Parameter definiert, ich möchte diese Parameter auf einen bestimmten Wert nämlich 0 setzen
Beispiel:
Datei 1:
Parameter = 50
Neuer wert soll 0 sein,
Datei 2:
Parameter = 35
Neuer wert soll 0 sein
womit ich bei 2. wäre: Wenn der Wert bei Parameter nicht 0 ist dann setze ihn auf 0
3. Die datei dann Speichern (Überschreiben)
Vielen dank schonmal vorab für eure Hilfe,
LG Fantomas
zu diesem Thema gibt es ja schon ein paar Beiträge, aber meine "Batch" Kenntnisse reichen nicht aus um diese zu verstehen bzw. auf meine Bedürfnisse anzupassen, ich wollte meine Frage dort jetzt auch nicht reinstellen da der letzte Beitrag von 2011 ist und vielleicht gibts auch ne schöne Lösung mit VBS
Also ich beschreib mal kurz meine Problemstellung:
Ich habe ein Verzeichnis ...\res dort befinden sich mehere (100+) dateien mit den unterschiedlichsten Dateinamen aber immer gleicher Dateiendung...
1. ich müsste also alle Dateien dieses Typs öffnen und reingucken
im Prinzip sind es Textdateien, dort werden Parameter definiert, ich möchte diese Parameter auf einen bestimmten Wert nämlich 0 setzen
Beispiel:
Datei 1:
Parameter = 50
Neuer wert soll 0 sein,
Datei 2:
Parameter = 35
Neuer wert soll 0 sein
womit ich bei 2. wäre: Wenn der Wert bei Parameter nicht 0 ist dann setze ihn auf 0
3. Die datei dann Speichern (Überschreiben)
Vielen dank schonmal vorab für eure Hilfe,
LG Fantomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 257671
Url: https://administrator.de/contentid/257671
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Fantomas,
gibts zwar schon etliche Beispiel hier im Forum, aber hier noch mal eins mit Powershell:
Oder wenn's VBS sein muss:
Grüße Uwe
gibts zwar schon etliche Beispiel hier im Forum, aber hier noch mal eins mit Powershell:
gci "C:\ordner\*.txt" | %{
$content = gc $_.Fullname | out-string
if (([regex]::match($content,'Parameter = (\d+)').Groups[1].Value) -gt 0){
$content -replace '(Parameter = )(\d+)','${1}0' | Set-Content $_.Fullname -Force
}
}
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
Next
MsgBox "Finished"
Set fso = Nothing
Set regex = Nothing
Hey,
vielfach getestete "Profiscripte" ohne Fremdsoftware:
FindRepl.bat:New regex utility to search and replace strings
JREPL.BAT - regex text processor
Gruß, Endoro
vielfach getestete "Profiscripte" ohne Fremdsoftware:
FindRepl.bat:New regex utility to search and replace strings
JREPL.BAT - regex text processor
Gruß, Endoro