我想使用PowerShell和7zip在目录中创建一个归档文件,其中文件名是数字(例如1),然后从文件1到100创建归档。然后从文件101到200创建第二个归档,依此类推到100'000(该目录中有10万个文件)。
我该怎么做?
答案 0 :(得分:0)
尝试以下示例:这将从目录中获取所有文件,并为每个.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'"
}
输出将为