我有一个PS命令:
PowerShell.exe "dir -Verbose -Recurse | Select-Object Mode, Length, Name, Directory | Export-Csv "listing.csv""
这可以给我一个列出我想要的方式的目录,但有一点需要注意:如果目录结构或文件名最大化(我认为它的260个字符),它不会在生成的csv中列出此文件并且它会抛出一个错误。
有没有人有任何建议使其与8.3表示法兼容?我认为这是获取所有文件的唯一方法。
答案 0 :(得分:0)
我已经处理了这一堆,但遗憾的是,8.3表示法在很多情况下仍然不起作用,因为文件名仍然可能超过260个字符。可以使用驱动器安装来缩短文件名,但这可能有点痛苦。我发现的最好方法是使用名为AlphaFS的.NET库来解决问题,该库没有260个字符限制,您可以阅读更多内容或下载它here。如果你之前没有直接使用过.NET类,那么需要习惯一点,但这比尝试奇怪的黑客或处理8.3表示法要好得多。加载程序集后,将dir -verbose -recurse
替换为([Alphaleonis.Win32.Filesystem.Directory]::GetFiles((pwd).path,"*","AllDirectories"))
。请注意,除了将GetFiles
替换为GetDirectories