如何将文件夹中的每个X子文件夹压缩为单独的rar文件

时间:2019-05-26 14:49:48

标签: windows powershell zip compression powershell-v5.1

我真的是Powershell编码的新手,请获得您的帮助

我正在使用Powershell 5.1的Windows 10上,并尝试使用Winrar来解决。主文件夹包含5000个子文件夹,我想指定每个档案应包含多少个文件夹,并将其中每个X压缩为一个单独的rar文件。

创建文本文件,并为每个rar文件创建一个.txt文件,其中每个rar中的所有子文件夹名称

例如: 第一: 指定每个档案应包含多少个文件夹

具有5000个子文件夹的文件夹名称为“项目”

所有rar文件应与主文件夹具有相同的名称,并带有连续编号:在这种情况下

Project - 01.rar
Project - 02.rar
Project - 03.rar
Project - 04.rar
Project - 05.rar
etc....

,对于每个rar文件,都有一个txt文件,其中列出了rar文件的内容

Project - 01.txt
Project - 02.txt
Project - 03.txt
Project - 04.txt
Project - 05.txt 
etc...

有没有一种方法可以不手动进行?

1 个答案:

答案 0 :(得分:0)

这是我的脚本,目前可以正常使用

param
(
    # The input folder containing the files to zip
    [Parameter(Mandatory = $true)]
    [string] $InputFolder,

    # The output folder that will contain the zip files
    [Parameter(Mandatory = $true)]
    [string] $OutputFolder
)

Set-Variable SET_SIZE -option Constant -value 10
$i = 0
$zipSet = 0

Get-ChildItem $InputFolder | ForEach-Object {
    $zipSetName = "archive" + ($zipSet + 1) + ".zip"
    Compress-Archive -Path $_.FullName -Update -DestinationPath "$OutputFolder\$zipSetName"
    $i++;

    if ($i -eq $SET_SIZE) {
        $i = 0;
        $zipSet++;
    }
}

现在我需要一些帮助来添加上述选项和

  • 将输入和输出设置为当前正在执行的powershell脚本的路径 在批处理文件中,我将执行以下操作:%〜d0%〜p0
  • 在主文件夹中创建一个文件夹“完成”,然后将所有已经添加到存档中的子文件夹移至“完成”
  • 如果提供了rar支持,请始终使用rar,否则请使用zip

谢谢