Config Update - PowerShell

0

Otázka

doufal, že někdo mě navede správným směrem.

Pozadí:

Prostředí je Windows 10 - Musím aktualizovat řádek v config pro naše uživatele, od číselné IP na řetězec. Každé zařízení je to, že rozsahem se má možnost více konfiguračních souborů v rámci definované dráhy skript s různými předchozí uživatel config soubory. Za to jsem udělal skript jako zástupný znak aktualizovat všechny se nacházejí konfigurační soubory mají stejný řádek aktualizován, takže je to jednotný a vyhýbá se konfliktům po nasazení. V současné době skript funguje nahradit hodnoty, ale při další konfigurace jsou zvedl pomocí skriptu jsou kombinovány a re-vstoupila pro každou config nalezen.

Scénář v jeho současné podobě

((Get-Content -Path "C:\Program Files\ProgramX\config\brand-protocol-port-*-config.ext" -Raw) -replace 'X.X.X.X','VALUE') |
    Set-Content -Path " C:\Program Files\ProgramX\config\brand-protocol-port-*-config.ext "
Get-Content -Path " C:\Program Files\ProgramX\config\brand-protocol-port-*-config.ext "

Důsledkem je, pokud tam je config pro John Smith a John Walker - po spuštění skriptu se soubory, které jsou aktualizovány, jak bylo zamýšleno, ale místo 2 samostatné konfigurační soubory aktualizovány, jsou aktualizovány pak sčítají v každé instanci s aktualizované soubory, které jsou přítomny v každé jiné.

Jakékoliv připomínky jsou vítány!

configuration powershell updates windows
2021-11-22 15:53:32
1

Nejlepší odpověď

0

To, co potřebujete, je použít smyčku, takže každý soubor může být zpracován samostatně:

# since we're using the regex `-replace` operator, the dots need to be escaped
$ipToFind    = [regex]::Escape('X.X.X.X')
$replaceWith = 'VALUE'
Get-ChildItem -Path 'C:\Program Files\ProgramX\config' -Filter 'brand-protocol-port-*-config.ext' -File | ForEach-Object {
    (Get-Content -Path $_.FullName -Raw) -replace $ipToFind, $replaceWith | Set-Content -Path $_.FullName
}
2021-11-22 16:12:34

Pracoval perfektní, děkuji!!!
TechnicalFool96

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................