此脚本将powershell中的基本文件元数据导出到.csv。

PS K:\> Get-childitem -recurse -file | select-object length,lastwritetime,fullname | export-csv filelist.csv -notypeinformation

它在10-20k个文件的简单目录结构上工作得很好,但是当我在500多个复杂的多级目录结构的文件上运行它时,它会冻结或给我错误:
At line:1 char:1
+ Get-childitem -recurse -file | select-object length,lastwritetime,ful ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (0:Int32) [], RuntimeException
    + FullyQualifiedErrorId : CallDepthOverflow

这是-recurse的问题还是其他问题?使用powershell 5 1(大-小)。

最佳答案

测试文件路径的长度。
如果文件路径超过248个字符…这可能就是你犯错误的原因。
检查是否有超过248个字符的返回

Get-childitem "filepath" -recurse  | % {
    $filepath = $_.FullName
    $charactercount = ($filepath | Measure-Object -Character).Characters
    If ($charactercount -gt 248){write-host $filepath}
}

关于windows - 在大型目录结构上运行时,元数据导出错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45861011/

10-13 09:28