我正在尝试Get-ChildItem -Recurse针对文件共享运行 a ,但出现了一些“路径太长”错误。但是当我深入研究它时,其中一些不是。
我正在使用-ErrorVariable将错误详细信息捕获到名为$ErrLog. 然后,以下将它们记录到 CSV:
if ($ErrLog.Length -ne 0)
{
$ErrLog | ForEach-Object {
# Gather details of interest.
$ErrTarget = $_.TargetObject
$ErrReason = $_.CategoryInfo.Reason
# Write data to custom PowerShell object.
$ErrObject = New-Object PSObject
$ErrObject | Add-Member -MemberType NoteProperty -Name 'Target Path' -Value $ErrTarget
$ErrObject | Add-Member -MemberType NoteProperty -Name 'Error Reason' -Value $ErrReason
# Add error to log variable.
$ErrList += $ErrObject
}
}
# Announce number of errors, and write to log as needed.
if ($ErrList.Length -eq 0)
{
Write-Output "No errors encountered.`n"
}
else
{
$ErrList | Export-CSV $LogErrors -NoTypeInformation
$ErrorsCount = $ErrList.Length
Write-Output "Logged $ErrorsCount errors.`n"
}
Run Code Online (Sandbox Code Playgroud)
上面的代码似乎工作得很好,但我从中获得的数据并不完全符合错误细节。
控制台上的错误详细信息说文件名必须少于 260 个字符,目录名必须少于 248 个。有足够的意义。但是,所有记录的路径都是目录,其中一些甚至少于 200 个字符!
我在日志中最长的是 259 个字符。那个和其他超过 248 个字符的字符是有道理的。不过最短的是 186,还有很多比 248 短的。
为什么我在不是的目录上收到这些“路径太长”错误?是否有错误数据应该告诉我我只是没有在日志中捕获?
| 归档时间: |
|
| 查看次数: |
544 次 |
| 最近记录: |