我正在尝试输出一个文本文件,网络驱动器上路径长度大于x(当前为250)的所有文件。
我一直在尝试使用下面重新运行的解决方案:
How do I find files with a path length greater than 260 characters in Windows?
In powershell cmd /c dir /s /b |? {$_.length -gt 250}
这个解决方案似乎有效但有两个问题:
我已将此重新提供的解决方案更改为以下内容:
cmd /c dir /s /b |? {$_.length -gt 250} | Out-File C:\results.txt -width 1500
现在解决了上述两个问题,但我遇到了另一个问题。我在运行它时在Powershell窗口中收到一条错误消息,说“目录名称xxxxxxxx太长”。检查文件显示并非所有文件都输出到它。有人知道我怎么能做到这一点吗? 干杯
答案 0 :(得分:0)
所以基本上你不能重命名或更改文件的属性,因为文件名太长了。
简化的解决方案是重命名文件:
在 big_named_file 所在的同一位置创建 winrar文件。
然后按向上按钮,您应该能够在winrar控制台中看到 big_named_file 。
按 F2 ,然后你去,你可以重命名它。
注意:这是解决文件太长问题的方法。
答案 1 :(得分:0)
使用get-childitem,而不是退出到旧的cmd,下面将文件路径存储在$ files变量中,然后您可以按照自己喜欢的方式将其转储到文件中,我使用了export-csv作为你似乎想在Excel中看到它。
$files = Get-ChildItem 'yourpath' -recurse | where {$_.fullname.length -gt 250} | select -ExpandProperty fullname
$files | export-csv 'yourfilename' -noclobber
答案 2 :(得分:0)
这不是真正的PowerShell解决方案。而不是那样,尝试以递归方式遍历网络路径并将长文件输出到longfiles.txt
:
gci \\someserver\somedir -r | ? { $_.FullName.length -gt 250 } | select -expandproperty fullname > longfiles.txt