我想你和我一样,经常看到表格的路径 !!! 重要____新____! 不要删除!!!98819 年 649 月 30 日的订单号 1985-XNUMX-B 关于任命 Ivan Aleksandrovich Kozlov 为支持企业 VIP 客户和在场外组织商务会议的部门代理负责人。.
通常您无法立即在 Windows 中打开此类文档。 有人以磁盘映射的形式实践解决方法,有人使用可以处理长路径的文件管理器:Far Manager、Total Commander 等。 还有更多的人悲伤地看着他们创建的 PS 脚本,其中投入了大量的工作,并且在测试环境中大放异彩,在战斗环境中,无奈地抱怨一项不可能完成的任务: 指定的路径、文件名或两者都太长。 完全限定的文件名必须少于 260 个字符,目录名必须少于 248 个字符。
事实证明,260 个字符“不仅适用于所有人”就足够了。 如果您有兴趣超越允许的范围,我会在 cat 下询问。
以下是限制文件路径长度的一些不幸后果:
- 服务器上有一个文件夹,例如D:DataSharedAccounting,通过SMB共享,作为网络盘S挂载给用户; 用户创建从服务器本地访问时管理员/脚本无法读取的文件,因为绝对路径比网络路径长;
漫游配置文件同步错误 ;从卷影副本恢复的问题 ;- 当从其他对路径长度没有严格限制的系统迁移数据时,在新环境中,如果不手鼓跳舞,其中一些将变得无法访问;
计算文件夹中文件的大小和数量时数据不正确 ;- 等等......
稍微偏离主题,我注意到对于 DFS 复制,文章中考虑的问题并不可怕,长名称的文件成功地从一个服务器传输到另一个服务器(当然,除非你
我还想提请注意一个非常有用的实用程序,它不止一次帮助过我
我也有兴趣学习如何使用长 PowerShell 路径。 和他在一起,几乎就像是关于伊万沙皇和美丽的瓦西里萨的大胡子笑话。
快速的方式
切换到 Linux,不用担心 Windows 10/2016/2019 并启用适当的组策略设置/注册表调整。 我不会详细介绍这个方法,因为。 网上已经有很多关于这个主题的文章,例如,
考虑到在大多数公司中有很多,委婉地说,不是新版本的操作系统,这种方法仅用于在纸上书写是快速的,当然,除非你是那些几乎没有遗留系统和 Windows 的幸运者之一10/2016/2019 统治。
很长的路要走
在这里我们立即做出保留,这些更改不会影响 Windows 资源管理器的行为,但可以在 PowerShell cmdlet 中使用长路径,例如 Get-Item、Get-ChildItem、Remove-Item 等。
首先,让我们更新 PowerShell。 已经完成一、二、三。
- 我们将 .NET Framework 更新到至少 4.5 的版本。 操作系统必须至少为 Windows 7 SP1/2008 R2。 当前版本可以下载
这里 阅读更多信息这里 . 下载 并安装 Windows Management Framework 5.1- 我们重新启动机器。
勤奋的人可以手动完成上述步骤,懒惰的人可以借助 SCCM、策略、脚本和其他自动化工具来完成。
PowerShell 的当前版本可以从变量中找到 $PS版本表. 更新后应该是这样的:
现在使用 cmdlet 时 GET-ChildItem 和其他人喜欢他而不是平常 途径 будемиспользовать 文字路径.
路径的格式会略有不同:
Get-ChildItem -LiteralPath "?C:Folder"
Get-ChildItem -LiteralPath "?UNCServerNameShare"
Get-ChildItem -LiteralPath "?UNC192.168.0.10Share"
为了方便将路径从通常的格式转换为格式 文字路径 你可以使用这个功能:
Function ConvertTo-LiteralPath
Param([parameter(Mandatory=$true, Position=0)][String]$Path)
If ($Path.Substring(0,2) -eq "") {Return ("?UNC" + $Path.Remove(0,1))}
Else {Return "?$Path"}
}
请注意,在设置参数时 文字路径 不能使用通配符 (*, ? 等等)。
除了参数 文字路径, 在更新的 PowerShell cmdlet 中 GET-ChildItem 接收到的参数 深度,你可以用它来设置递归搜索的嵌套深度,我用了几次并且很满意。
现在您不必担心您的 PS 脚本会从一条棘手的长途中误入歧途,并且不会看到远处的文件。 例如,在编写脚本以重置 DFSR 文件夹中文件的“临时”属性时,这种方法对我有很大帮助。 但这是另一个故事,我将在另一篇文章中尝试讲述。 我正在等待您的有趣评论,我建议您进行一项调查。
相关链接:
只有注册用户才能参与调查。
长路径问题与您有关吗?
-
是
-
相关,但已经决定
-
有影响,但不大
-
没想到,似乎一切正常
-
没有
-
其他(备注说明)
155 位用户投票。 25 名用户弃权。
来源: habr.com