我正在对Get-Children进行递归调用,以获取文件夹/目录结构的总大小。它可以正常工作,但不能将错误保留在我使用的ErrorVariable中,并且从文档中看,它应该吗?有什么想法吗?
[string]$fsoobjexist = Test-Path -Path $Folder
$err=@()
If ($fsoobjexist -eq "True"){
$err.clear
if ((Get-Item $Folder) -is [System.IO.DirectoryInfo]){
$Foldersize = "{0:N2} MB" -f ((Get-ChildItem -LiteralPath $Folder -Force -Recurse | Measure-Object -Property Length -Sum -EV +err -EA Continue ).Sum / 1MB)
$logline = "$Folder,$Foldersize"
LogWrite $logline
Foreach ($Errors in $err){
ErrLogWrite "$($Errors.CategoryInfo.Category) $($Errors.CategoryInfo.Activity) $($Errors.CategoryInfo.Reason) $($Errors.CategoryInfo.TargetName) $($Errors.CategoryInfo.TargetType) $($Errors.Exception.Message)"
}
}
}
答案 0 :(得分:2)
您已将+err
作为ErrorVariable
的{{1}}参数的参数传递,但是很有可能Measure-Object
cmdlet引发了错误。
将其更改为:
Get-ChildItem