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
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Cela fonctionne car -Recurse:$false est la même chose a ne pas avoir -Recurse à tous.
OriginalL'auteur x0n
Dans PowerShell 3.0, il est cuit dans avec
-File
-Directory
commutateurs:OriginalL'auteur iraSenthil
La réponse Oisin donne est sur place. Je voulais juste ajouter que c'est plinthes à proximité de vouloir être un proxy de la fonction. Si vous avez la PowerShell Communauté Extensions 2.0 est installé, vous disposez déjà de ce proxy fonction. Vous devez l'activer (il est désactivé par défaut). Il suffit d'éditer le Pscx.UserPreferences.ps1 fichier et modifier cette ligne, de sorte qu'il est défini sur $true comme indiqué ci-dessous:
Note la limitation en ce qui concerne les paramètres de la dynamique. Maintenant, lorsque vous importez PSCX le faire comme ceci:
Vous pouvez désormais le faire:
OriginalL'auteur Keith Hill