windows - 如何将文件夹中的每个 X 子文件夹压缩为单独的 rar 文件
问题描述
我对 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...
有没有办法不手动执行?
解决方案
这是我的脚本,到目前为止它有效
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
谢谢
推荐阅读
- java - 减少在同一地点连续取货/送货的服务时间
- formatting - 如何使用 oh-my-zsh 使我在 ZSH 中输入的命令变为粗体?
- javascript - 为什么我的代码无法通过 Javascript 中从字符串中删除空格的测试?
- c++ - 完美转发函数参数到函数指针:值传递呢?
- ios - Swift 崩溃与 nil 合并运算符 EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000
- ios - Xcode 提示“已达到您的最大 App ID 限制”和“Xcode 找不到任何 iOS 应用开发配置文件”
- javascript - JavaScript 评估速记问题
- c++ - 模板函数中的运算符 << 重载
- python - 使用 windows power shell 将 Tkinter py 文件转换为 EXE 文件
- python-3.x - 将数据从一列映射到另一列