Для дальнейшего разъяснения ответа Васифа Хасана Когда я просматривал официальную документацию для Get-ChildItem, там указано
При использовании параметра -Include, если вы не включите звездочку в путь, команда не возвращает никаких выходных данных.
Это означает, что Depth
будет автоматически игнорироваться, поскольку поведение, требуемое для Include
является рекурсивным. Далее некоторые подробности -Include раскрывают эти точки.
Если в команду добавлен параметр Recurse, конечная звездочка (*) в параметре Path является необязательной. Параметр Recurse получает элементы из каталога Path и его подкаталогов. Например, -Path C: \ Test \ -Recurse -Include * .txt
Таким образом, искомое поведение находится во флаге Filter
для Get-ChildItem
, который не требует каких-либо подстановочных знаков
Для меня флаг Depth
с любым другим флагом, который принимает подстановочные знаки в пути, не имеет смысла, так как цель флага Depth
состоит в ограничении глубины поиска в Элементы, в которых указание подстановочного знака исключает эту конкретную цель. Вы можете попробовать это, просто используя эту команду, и вы увидите, что параметр Depth
не действует, если вы указали подстановочный знак в пути, например
Get-ChildItem -Path C:\DIRECTORY\* -Depth 1
и
Get-ChildItem -Path C:\DIRECTORY\* -Depth 2
собираются вернуть те же результаты.
Надеюсь, это поможет прояснить некоторые проблемы