Comment écrire une fonction PowerShell pour obtenir les répertoires?

À l'aide de PowerShell je peux obtenir les répertoires avec la commande suivante:

Get-ChildItem -Path $path -Include "obj" -Recurse | `
    Where-Object { $_.PSIsContainer }

Je préfère écrire une fonction est donc la commande est plus lisible. Par exemple:

Get-Directories -Path "Projects" -Include "obj" -Recurse

Et de la fonction suivante est exactement ce que fait, sauf pour la manipulation de -Recurse élégamment:

Function Get-Directories([string] $path, [string] $include, [boolean] $recurse)
{
    if ($recurse)
    {
        Get-ChildItem -Path $path -Include $include -Recurse | `
            Where-Object { $_.PSIsContainer }
    }
    else
    {
        Get-ChildItem -Path $path -Include $include | `
            Where-Object { $_.PSIsContainer }
    }
}

Comment puis-je supprimer le if déclaration de la part de mes-Annuaires fonction ou est-ce une meilleure façon de le faire?

Pensez à utiliser -Filtre au lieu d'Inclure, sauf si vous avez besoin de includ plusieurs éléments. Pour quelque chose comme *.txt, -Filtre peut être beaucoup plus importante. Ou vous pouvez toujours ajouter à la fois.

OriginalL'auteur Tim Murphy | 2010-07-17