PowrShell处理长文件路径


因为历史原因,Windows 文件系统有时在处理字符长度超过256的文件路径时会挂掉,在PowerShell Gallery中有个模块中的cmdlets 可以支持搜索任意字符长度的文件系统。

如果你的版本是PowerShell 5.0或者安装了PowerShellGet,可以下载这个PSAlphaFS模块:

 Install-Module -Name PSAlphaFS -Scope CurrentUser

有点遗憾,这条命令依赖于管理权限,如果使用常规用户运行,会报错。如果你已经是管理员了,可以在Window目录下像这样查询是否有特殊的长度的文件:

Get-LongChildItem -Path c:\windows -Recurse -File |
  Where-Object { $_.FullName.Length -gt 250 }

原文连接:Dealing with Long File Paths

荔非苔注

我在本地系统尝试创建一个文件名超过250的文件会报错,不知道这样的文件是怎么创建出来的。

PS> $a=(1..300 | foreach {'a' }) -join ''
PS> "" | Out-File $a
Out-File : 指定的路径或文件名太长,或者两者都太长。完全限定文件名必须少于 260 个字符,并且目录名必须少于 248 个字符。
At line:1 char:6
+ "" | Out-File $a
+ ~~~~~~~~~~~
 + CategoryInfo : OpenError: (:) [Out-File], PathTooLongException
 + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand
本文链接: https://www.pstips.net/dealing-with-long-file-paths.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注