POWERSHELL Mehrere unterschiedliche Verzeichnisnamen mit mehreren unterschiedlichen Konfiguratonsdateien.
Hallo zusammen,
Ich möchte mit Powershell Konfigurationsdateien ändern.
Das ändern ist nicht das Problem.
Ich stosse an meine Grenzen, da die Konfig Files auf mehreren Maschinen, im gleichen Verzeichnis aber in mehreren unterschiedlichen Unterverzeichnissen enthalten sind.
Bsp.:
D:\konfigverzeichnis <- ist überall gleich
D:\konfigverzeichnis\RE1 <- immer wieder anders
D:\konfigverzeichnis\RE2 <- immer wieder anders
D:\konfigverzeichnis\RE574 <- immer wieder anders
Es kommt noch dazu das die Files die in den RE Verzeichnissen entahlten sind nicht alle gleich heissen.
Im gesamten habe ich so ca 750 Files in denen ich mehrere Werte ändern möchte, da aber die Verzeichnisse und die Dateinamen immer anders sind, stellt sich mir die Frage wie ich die einzelnen Daten ansprechen soll.
Mein Versuch:
Get-Content "D:\konfigverzeichnis\RE1\*.txt" | Foreach-Objeect {$_.replace{"Alter Wert","Neuer Wert"}} | Set-Content D:\konfigverzeichnis\RE1\*.txt"
Grundsätzlich fungiert die Änderung, aber die Änderung wird so oft in einem File geschrieben wie TXT Files vorhanden sind. Also wenn ich 36 Dateien habe, bekomme ich 36x den Inhalt in jeder von jeder Datei.
Danke für Euer Brainstorming
Viele Grüsse und einen sonnigen Tag
Floo
Ich möchte mit Powershell Konfigurationsdateien ändern.
Das ändern ist nicht das Problem.
Ich stosse an meine Grenzen, da die Konfig Files auf mehreren Maschinen, im gleichen Verzeichnis aber in mehreren unterschiedlichen Unterverzeichnissen enthalten sind.
Bsp.:
D:\konfigverzeichnis <- ist überall gleich
D:\konfigverzeichnis\RE1 <- immer wieder anders
D:\konfigverzeichnis\RE2 <- immer wieder anders
D:\konfigverzeichnis\RE574 <- immer wieder anders
Es kommt noch dazu das die Files die in den RE Verzeichnissen entahlten sind nicht alle gleich heissen.
Im gesamten habe ich so ca 750 Files in denen ich mehrere Werte ändern möchte, da aber die Verzeichnisse und die Dateinamen immer anders sind, stellt sich mir die Frage wie ich die einzelnen Daten ansprechen soll.
Mein Versuch:
Get-Content "D:\konfigverzeichnis\RE1\*.txt" | Foreach-Objeect {$_.replace{"Alter Wert","Neuer Wert"}} | Set-Content D:\konfigverzeichnis\RE1\*.txt"
Grundsätzlich fungiert die Änderung, aber die Änderung wird so oft in einem File geschrieben wie TXT Files vorhanden sind. Also wenn ich 36 Dateien habe, bekomme ich 36x den Inhalt in jeder von jeder Datei.
Danke für Euer Brainstorming
Viele Grüsse und einen sonnigen Tag
Floo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 205126
Url: https://administrator.de/forum/powershell-mehrere-unterschiedliche-verzeichnisnamen-mit-mehreren-unterschiedlichen-konfiguratonsdateien-205126.html
Ausgedruckt am: 21.04.2025 um 09:04 Uhr
3 Kommentare
Neuester Kommentar
Hi Floo,
das was du vorhast könntest du so machen:
Das geht alle Textdateien in allen Unterverzeichnissen mit dem Muster d:\konfigverzeichnis\RE* durch und ersetzt den jeweiligen Text.
Grüße Uwe
p.s. ohne Script ginge das z.B. mit einem Texteditor wie UltraEdit der Suchen und Ersetzen in mehreren Dateien unterstützt
das was du vorhast könntest du so machen:
Get-ChildItem -Recurse "D:\konfigverzeichnis\RE*\*.txt"| foreach-object -Process {$newText = (Get-Content $_.FullName).replace("Alter Wert","Neuer Wert");Set-content -Path $_.FullName -Value $newText}
Das geht alle Textdateien in allen Unterverzeichnissen mit dem Muster d:\konfigverzeichnis\RE* durch und ersetzt den jeweiligen Text.
Grüße Uwe
p.s. ohne Script ginge das z.B. mit einem Texteditor wie UltraEdit der Suchen und Ersetzen in mehreren Dateien unterstützt