首页 > 解决方案 > 将文件压缩到完全相同的文件夹路径,但在不同的驱动器/服务器上

问题描述

我目前正在尝试将大量文件夹 (~550) 从我的数据服务器 (Q:) 压缩到我的存档服务器 (V:)。目标是将所有 550 个选定文件夹移动到我的 V:服务器,同时保留完全相同的文件夹结构。我想使用 7Zip 的命令行来执行此操作,7za因为有人告诉我 PowerShell 在Compress-Archive处理大文件时非常麻烦。

所以我的想法是将(Q:)的整个文件夹结构复制到(V:)而不复制任何文件。这样我就可以简单地使用不同的驱动器号压缩到完全相同的路径。我已经这样做了,现在 Q: 和 V: 有相同的文件夹树。

$listPath = "Q:\SourceNEW.csv"
$homepath = "data\clients"
$list = import-csv $listPath -Encoding UTF8
$driveone = "Q:\"
$drivetwo = "V:\"

foreach ($user in $list) {
    $pathA = Join-Path ($driveone + $homepath) -ChildPath $user.username #Q:\ + data\clients + \A\Aclient\Aproject
    $pathB = Join-Path ($drivetwo + $homepath) -ChildPath $user.username #V:\ + data\clients + \A\Aclient\Aproject
    $pathsplit = Split-Path -Path $pathB -Leaf 

    if (-not (Test-Path "$env:ProgramFiles\7-Zip\7z.exe")) {
        throw "$env:ProgramFiles\7-Zip\7z.exe needed"
    }
    Set-Alias sz "$env:ProgramFiles\7-Zip\7z.exe"  
    sz a -an -mx=5 $PathB $PathA
}

这适用于将指定文件夹从 Q: 复制到 V:,因为它只影响 CSV 中列出的文件。现在我的问题是,除了最终排序的 7z 文件之外,7Zip 还在“V:\”中创建了一个“__.7z”文件,这只是我的 Q: 驱动器的全部。我错过了两次拉上拉链的东西?

标签: powershellarchive7zip

解决方案


推荐阅读