1

我有一个 PS 命令:

PowerShell.exe "dir -Verbose -Recurse | Select-Object Mode, Length, Name, Directory | Export-Csv "listing.csv""

这可以给我一个目录,列出我想要的方式,但有一个警告:如果目录结构或文件名最大(我认为它的 260 个字符)它不会在生成的 csv 中列出这个文件,它会引发错误。

有没有人有任何建议使它与 8.3 表示法兼容?我认为这是获取所有文件的唯一方法。

4

1 回答 1

1

我已经处理了一堆,不幸的是,8.3 符号在很多情况下仍然不起作用,因为文件名仍然可能超过 260 个字符。可以使用驱动器安装来缩短文件名,但这可能有点麻烦。我发现的最佳方法是使用一个名为 AlphaFS 的 .NET 库来规避该问题,该库没有 260 个字符的限制,您可以阅读更多内容或在此处下载。如果您以前没有直接使用过 .NET 类,则需要一点时间来适应,但这比尝试奇怪的 hack 或处理 8.3 表示法要好得多。加载程序集后,您将替换dir -verbose -recurse([Alphaleonis.Win32.Filesystem.Directory]::GetFiles((pwd).path,"*","AllDirectories")). 请注意,这只会获取文件,对于您使用相同代码的目录,除了替换GetFilesGetDirectories

于 2016-08-10T20:16:42.767 回答