You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10环境下PowerShell Get-FileHash无法处理长文件路径的解决方法咨询

Windows 10环境下PowerShell Get-FileHash无法处理长文件路径的解决方法咨询

嗨,我来帮你搞定这个长路径下Get-FileHash失效的问题~

首先得说清楚原因:Windows传统的路径长度限制是260字符,虽然现在系统本身支持更长的路径,但PowerShell里的部分cmdlet(比如Get-FileHash依赖的Resolve-Path)默认没适配这个,所以手动输入长路径时会找不到文件,但Get-ChildItem因为实现逻辑不同,能正常识别长路径文件。

下面给你两个不需要管理员权限就能用的解决办法:

  • 方法一:通过Get-ChildItem管道传递文件对象
    既然Get-ChildItem能找到目标文件,我们可以直接把它返回的文件对象传给Get-FileHash,这样就绕过了手动输入长路径导致的解析失败问题。执行命令如下:

    Get-ChildItem 'looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong.txt' | Get-FileHash -Algorithm MD5
    

    如果需要指定具体文件夹,也可以这么写:

    Get-ChildItem -Path . -Filter 'looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong.txt' | Get-FileHash -Algorithm MD5
    

    这个方法最省心,不需要手动处理复杂的长路径,而且成功率很高。

  • 方法二:使用Windows长路径前缀\\?\
    Windows支持用\\?\前缀来突破传统路径长度限制,你只需要把文件的绝对路径加上这个前缀,再配合-LiteralPath参数(避免PowerShell解析路径中的特殊字符)就能正常执行Get-FileHash了。示例命令:

    Get-FileHash -LiteralPath '\\?\Z:\Test loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong\looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong.txt' -Algorithm MD5
    

    不过这个方法需要手动输入完整的长路径,相对麻烦一些,适合偶尔使用的场景。

你可以根据自己的情况选其中一个方法,亲测都能解决长路径下无法生成MD5哈希的问题~

备注:内容来源于stack exchange,提问作者user1763606

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 08:19:51