84 votes

Limiter la profondeur de récursion de Get-ChildItem

Je peux obtenir tous les sous-éléments de manière récursive à l'aide de cette commande :

Get-ChildItem -recurse

Mais existe-t-il un moyen de limiter la profondeur ? Si je ne veux rechercher qu'un ou deux niveaux plus bas, par exemple ?

0voto

kevro Points 263

@scanlegentil J'aime ça.
Une petite amélioration serait :

$Depth = 2
$Path = "."

$Levels = "\*" * $Depth
$Folder = Get-Item $Path
$FolderFullName = $Folder.FullName
Resolve-Path $FolderFullName$Levels | Get-Item | ? {$_.PsIsContainer} | Write-Host

Comme nous l'avons mentionné, cette méthode ne permettait de balayer que la profondeur spécifiée, et cette modification constitue donc une amélioration :

$StartLevel = 1 # 0 = include base folder, 1 = sub-folders only, 2 = start at 2nd level
$Depth = 2      # How many levels deep to scan
$Path = "."     # starting path

For ($i=$StartLevel; $i -le $Depth; $i++) {
    $Levels = "\*" * $i
    (Resolve-Path $Path$Levels).ProviderPath | Get-Item | Where PsIsContainer |
    Select FullName
}

0voto

Dennis kreutz Points 1

$path = C :
$depth = 0 #, 0 est la base, 1 dossier plus profond, 2 dossiers plus profonds

Get-ChildItem -Path $path -Depth $depth | Where-Object {$_.Extension -eq ".extension"}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X