Попробуйте этот пример: это позволит получить все файлы из каталога и сжать 5 файлов для каждого .zip.Возможно, вам придется адаптировать части кода к вашим требованиям (например, от 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
- ...