#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