HomeBlogMagic

Powershell rekursiv Ordner durchsuchen

Des öfteren muss ich mehrere Dateien nach dem gleichen Schema in Ordnern bearbeiten. Ab einer bestimmten Anzahl geht das mit einem Script deutlich einfacher.

In Windows benutze ich hierfür gerne die Powershell. Deshalb habe ich hier meine Basis Funktion die sich selbst immer wieder aufruft und die bearbeitet werden kann um nach bestimmten Dateien zu suchen und diese zu bearbeiten.

<#
.SYNOPSIS
    This is an example to walk through directories and filter for files.
    To find target file, add addtional else if for $Item.

.PARAMETER Path
    Path to recursive file operation.
#>
Function FileRecursive
{
    PARAM( 
        [PARAMETER(Mandatory)]
        $Path
    )
    $Items = Get-ChildItem $Path
    foreach($Item in $Items)
    {
        # Ignore git directory
        if($Item.Name -eq ".git")
        {
            continue
        }
        # Ignore this script if it is within this directories
        elseif($PSCommandPath -eq $Item.FullName)
        {
            continue
        }
        # Call recursive if it is container
        elseif($Item.PSIsContainer)
        {
            FileRecursive ($Path + "/" + $Item.Name)
        }
        else
        {
            Write-Host ($Path + "/" + $Item.Name)
        }
    }
}

Hier wird die Funktion als Beispiel aufgerufen.

# Example call on current directory
FileRecursive .\