路径长度大于x的输出文件

时间:2017-01-09 15:26:24

标签: powershell

我正在尝试输出一个文本文件,网络驱动器上路径长度大于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}

这个解决方案似乎有效但有两个问题:

  • 它显示在Powershell窗口中,而不是输出到文件
  • Powershell格式化窗口结果,以便在多行上显示一个文件路径。我尝试将Powershell的结果复制并粘贴到Excel文档中,但它们也粘贴在Excel中的多行中,我需要在一行上的每个文件路径

我已将此重新提供的解决方案更改为以下内容:

cmd /c dir /s /b |? {$_.length -gt 250} | Out-File C:\results.txt -width 1500

现在解决了上述两个问题,但我遇到了另一个问题。我在运行它时在Powershell窗口中收到一条错误消息,说“目录名称xxxxxxxx太长”。检查文件显示并非所有文件都输出到它。有人知道我怎么能做到这一点吗? 干杯

3 个答案:

答案 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