Использование PowerShell 4.0, Я пытаюсь получить размер нескольких каталогов, и я получаю очень противоречивые результаты между тем, что мне говорят окна и что мой код говорит мне ,"[" and "]" characters mess get get-childitem
Код в вопросе:
$temp4 = ($folderInfo.rootFolder).fullname
$folderInfo.directories += Get-ChildItem -LiteralPath $temp4 -Recurse -Force -Directory
$folderInfo.directories += $folderInfo.rootFolder
foreach ($dir in $folderInfo.directories)
{
$temp3 = $dir.fullname
$temp2 = Get-ChildItem -LiteralPath $temp3 -Force
$temp = (Get-ChildItem -LiteralPath $dir.fullname -Force -File | Measure-Object -Property length -Sum -ErrorAction SilentlyContinue).Sum
$folderInfo.totalSize += $temp
}
return $folderInfo
если $folderInfo.rootFolder = D:\sample
тогда я получаю то, что я хочу , но если $folderInfo.rootFolder = D:\[sample
тогда я получаю
Get-ChildItem: Не удается получить динамические параметры командлет. Неверный шаблон шаблона подстановки: sample [sample В сценариях C: \ powershell \ test.ps1: 55 char: 12 + $ temp = (Get-ChildItem $ dir.fullname -Force -File | Measure-Object - Свойство l ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException + FullyQualifiedErrorId:. GetDynamicParametersException, Microsoft.PowerShell.Commands.GetChildItemCommand
то же самое справедливо, если D:\sample
содержит папку где-то в нем дети, что является "[sample"
I получат правильные результаты от всего остального, но что-нибудь в или за пределами m. Оба $dir.pspath
и $dir.fullname
завинчивают вещи вверх.
Редактировать: изменил приведенный выше код, чтобы отразить его текущее состояние, и включил полную ошибку.
edit again: В приведенном выше коде есть несколько переменных отладки temp.
Я изменил свой код, чтобы отразить ваше предложение, я все еще получаю сообщение об ошибке. – icomeinpieces
Редактировать вопрос и опубликовать обновленный код и точное сообщение об ошибке. – mjolinor
изменен мой исходный пост – icomeinpieces