如何将文件夹中的每个 X 子文件夹压缩为单独的 rar 文件
Posted
技术标签:
【中文标题】如何将文件夹中的每个 X 子文件夹压缩为单独的 rar 文件【英文标题】:How can I compress every X subfolder in a folder as a separate rar file 【发布时间】:2019-05-26 14:49:47 【问题描述】:我是 Powershell 编码的新手,需要您的帮助
我使用的是带有 Powershell 5.1 的 Windows 10,并尝试使用 Winrar 解决它。主文件夹包含 5000 个子文件夹我想指定每个存档应包含多少个文件夹,并将其中的每个 X 压缩为单独的 rar 文件。
创建文本文件并为每个 rar 文件创建一个 .txt 文件,其中包含每个 rar 中的所有子文件夹名称
例如: 第一的: 指定每个存档应包含多少个文件夹
包含 5000 个子文件夹的文件夹名称为“Project”
所有 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...
有没有办法不手动操作?
【问题讨论】:
你试过什么?你有winrar的命令行版本吗? @js2010 这就是我到目前为止所做的 【参考方案1】:这是我的脚本,到目前为止它工作正常
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谢谢
【讨论】:
以上是关于如何将文件夹中的每个 X 子文件夹压缩为单独的 rar 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何将包含 30 多个压缩文件的文件夹存储到 r 中的变量中
如何将每个带有一组子命令的 Click 命令拆分为多个文件?
Hadoop 解压缩目录中的文件并将每个文件单独移动到另一个文件夹
linux:如何在归档 tar/cpio/...other 中单独压缩每个文件