Можете ли вы ввести фильтр для исключения определенных папок при запуске Get-ChildItem для составления списка размеров папок?

#powershell

#powershell

Вопрос:

Мне нужно получить csv-файл группы вложенных папок в каталоге, который помечает каждую папку и ее размер (предпочтительно в ГБ).

Пока у меня есть это:

 $targetPath = '\folderpathusers'
(Get-ChildItem $targetPath -Recurse | Measure-Object Length -Sum).Sum
  

В каждой вложенной папке в каталоге есть папка, к которой у меня нет разрешений / доступа, поэтому при каждом запуске скрипта я получаю сообщение об ошибке «отказано в доступе».

Путь к папке выглядит следующим образом:

 '\folderPathusers.V6'
  

Можно ли записать исключение для указанной выше папки и заставить скрипт пропустить его при сборе размера каждой из папок в файле Users? Размер папки небольшой, поэтому он не повлияет на результаты.

Комментарии:

1. Независимо от ошибки, она должна продолжаться. Чтобы скрыть ошибку, добавьте -ErrorAction silently continue к команде Get-ChildItem

2. То же самое сказал Дуг, но знайте, что Get-ChildItem имеет параметр -Include и -Exclude .

Ответ №1:

Get-ChildItem имеет параметры -Include и -Exclude .

-Exclude <String[]> Указывает в виде массива строк элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра определяет параметр Path . Введите элемент пути или шаблон, например *.txt . Разрешены подстановочные знаки.

 # Get specifics for a module, cmdlet, or function
(Get-Command -Name Get-ChildItem).Parameters
(Get-Command -Name Get-ChildItem).Parameters.Keys
Get-help -Name Get-ChildItem -Examples
# Results
<#
Get-ChildItem
Get-Childitem -System -File -Recurse
Get-ChildItem -Attributes !Directory,!Directory Hidden
dir -att !d,!d h
dir -ad
Get-ChildItem -File -Attributes !ReadOnly -path C:ps-test
get-childitem . -include *.txt -recurse -force
get-childitem c:windowslogs* -include *.txt -exclude A*
get-childitem -name
#>
Get-help -Name Get-ChildItem -Full
Get-help -Name Get-ChildItem -Online