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

PowerShell技术求助:查找2GB以上文件并分割压缩为2GB分卷

问题排查与修复方案

核心问题分析

你的脚本存在两个关键错误,直接导致了随机路径访问拒绝:

  • -Path . 指向的是当前PowerShell工作目录,而非你遍历到的目标大文件,这会让Compress-7Zip尝试压缩当前目录下的所有内容,包括你没有访问权限的路径。
  • 压缩包输出路径未明确指定,默认生成在当前工作目录,若当前目录权限不足或存在重名文件冲突,也会引发权限问题。

修复后的脚本

Get-ChildItem "E:\Folder 1\Folder 2\My Files with sub folders" -Recurse | 
    Where-Object {$_.Length -gt 2147483648} | 
    ForEach-Object {
        # 明确指定要压缩的单个文件完整路径
        $targetFile = $_.FullName
        # 将压缩包生成在原文件所在目录,避免权限和重名冲突
        $archivePath = Join-Path -Path $_.DirectoryName -ChildPath "$($_.Name).zip"
        Compress-7Zip -Path $targetFile -VolumeSize 2093796556 -ArchiveFileName $archivePath
    }

额外排查要点

  • 权限验证:右键以管理员身份运行PowerShell,确保有足够权限访问目标文件夹和压缩包输出目录。
  • 文件占用检查:部分访问拒绝可能是因为目标文件正在被其他程序占用,关闭相关程序后再重试。
  • 路径兼容性:目标路径包含空格,脚本中已用引号包裹,这部分没问题,但需确保7zip4shell能正确识别带空格的路径。

内容的提问来源于stack exchange,提问作者Farhad Bhai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:09:54