powershell - Powershell,从目录中的前 100 个文件创建存档
问题描述
我想使用 PowerShell 和 7zip 在文件名称为数字的目录中创建一个存档文件,例如 1,并从文件 1 到 100 创建存档。然后从文件 101 到 200 创建第二个存档,依此类推到 100 '000(我在那个目录中有 100k 个文件)。
我怎样才能做到这一点?
解决方案
试试这个例子:这将从一个目录中获取所有文件,并为每个 .zip 压缩 5 个文件。您可能需要根据您的要求调整部分代码(例如 5 到 100,5 用于测试较少的文件。)
Set-Location $PSScriptRoot
#UPDATE THIS VARIABLES ACCORDING YOUR NEEDS
$7zip = ".\packages\7zip\7za.exe"
$filesDir = ".\files"
$numberOfFilesPerZip = 5
#-------
$count = 0
$totalFile = 0
$filesToCompress = Get-ChildItem $filesDir
$zipFileName = "1_To_{0}" -f $numberOfFilesPerZip
foreach($file in $filesToCompress){
$totalFile++
$fileFullPath = $file.FullName
if($count -lt $numberOfFilesPerZip){
$count++
} else {
$zipFileName = "{0}_To_{1}" -f $totalFile, ($totalFile + $numberOfFilesPerZip - 1)
$count = 1
}
Invoke-Expression -Command "$7zip a $zipFileName '$fileFullPath'"
}
输出将是
- 1_To_5.7z
- 6_To_10.7z
- 11_To_15.7z
- ...
推荐阅读
- django - 使用 React Native 和 django-modeltranslation 更改语言
- kubernetes - 带有 Kubernetes 内存控制的 Java jib-maven-plugin
- database - 考虑实体-关系图中冗余关系的标准?
- django - Django 自定义注册表单html
- node.js - 在 Express 中设计集群和非集群服务
- javascript - 问:用javascript计算两个输入
- javascript - z 轴保持垂直的 3D 旋转
- javascript - 资源解释为样式表,但使用 MIME 类型 text/html 传输:
- flutter - 如何在颤动中将下载的项目添加到列表视图小部件?
- kubernetes - 如何将 Vault 中的 Secret 传递给 imagePullSecrets 以访问 Kubernetes 中私有注册表中的图像