HomeBlogMagic

Powershell File Content Replace

Hier ein kleines Beispiel wie aus einer UTF8 Datei der Content mit Powershell ausgelesen wird, und einige HTML-Entities ersetzt werden.

    if($Path.EndsWith(".htm") -or $Path.EndsWith(".html"))
    {
        $bFileChanged = $false;
        $oContent = Get-Content -path "$Path" -Raw -Encoding utf8
        if($oContent.Contains('™'))
        {
            $oContent = $oContent.Replace("™","™");
            $bFileChanged = $true;
        }
        if($oContent.Contains('®'))
        {
            $oContent = $oContent.Replace("®","®");
            $bFileChanged = $true;
        }
        if($oContent.Contains('©'))
        {
            $oContent = $oContent.Replace("©","©");
            $bFileChanged = $true;
        }
        if($bFileChanged)
        {
            Write-Host "Updated: $$Path"
            Set-Content -Path "$Path" $oContent
        }
    }

Dieser Codeschnipsel kommt aus einem Script in der über eine Vielzahl verschiedener Dateien geloopt wird welche per $Path an die erste If übergeben werden. Die Loop würde für das Beispiel zu weit führen weshalb ich diese entfern habe.

Die $bFileChanged Variable ist nur ein Schreibschutz um unveränderte Dateien nicht unnötig als neu zu markieren indem der Modified Timestamp aktualisiert wird.

Permalink: https://adirmeier.de/Blog/ID_388
Tags: Blog, Powershell, windowsvon am 2021-12-14