0
我發現了一個有用的PowerShell腳本在這個網站上有一個計數文件/文件夾大小的功能。Powershell - 抑制一個函數的錯誤(Out-Null)如何讓它工作
我使用這個,因爲它是快速和低內存使用大型文件/文件夾。
問題是,當它遇到一個文件夾,它無法訪問我得到輸出到控制檯說拒絕訪問。
Exception calling "GetFiles" with "0" argument(s): "Access to the path 'c:\users\administrator\AppData\Local\Applicati\
n Data' is denied."
At line:4 char:37
+ foreach ($f in $dir.GetFiles <<<<())
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
我知道,或者認爲我需要用|外空打壓錯誤,但仍然有腳本的工作,但我就是想不通的地方或如何做到這一點,儘管多次嘗試。
那麼繼承人的腳本,如果任何人有任何想法?
function Get-HugeDirStats ($directory) {
function go($dir, $stats)
{
foreach ($f in $dir.GetFiles())
{
$stats.Count++
$stats.Size += $f.Length
}
foreach ($d in $dir.GetDirectories())
{
go $d $stats
}
}
$statistics = New-Object PsObject -Property @{Count = 0; Size = [long]0 }
go (new-object IO.DirectoryInfo $directory) $statistics
$statistics
}
$stats = Get-HugeDirStats c:\users
精彩!! 「嘗試」已修復它!感謝您向我展示這是如何工作的...我確定我的powershell將會突飛猛進。我嘗試了Erroraction,但沒有成功,所以我覺得它需要在某種程度上在函數內部消沉。謝謝!! – Will