我想ZIP文件夾中的800張圖片,每個ZIP文件只包含10個或更少的圖片,所以我應該結束了80個ZIP文件。如果有人知道BAT文件的代碼來做到這一點,我會非常感激。我也不想在壓縮後刪除文件。用於自動增加ZIP壓縮的代碼?
我知道我可能會使用7-Zip,但我似乎無法在任何地方找到答案。謝謝!
我想ZIP文件夾中的800張圖片,每個ZIP文件只包含10個或更少的圖片,所以我應該結束了80個ZIP文件。如果有人知道BAT文件的代碼來做到這一點,我會非常感激。我也不想在壓縮後刪除文件。用於自動增加ZIP壓縮的代碼?
我知道我可能會使用7-Zip,但我似乎無法在任何地方找到答案。謝謝!
請嘗試以下PowerShell
:
# Setup variables (Change)
$ZipFolder = "T:\YourFolder\WithFiles\ToZip"
$7Zip = "C:\Program Files\7-Zip\7z.exe"
$NewZipsFolder = "T:\FolderToPut\AllOfThe\ZipsIn"
# Script Variables
$pendingFiles = @()
$fileNumber = 1
# Get a list of all the files to be zipped
Get-ChildItem $ZipFolder | sort $_.FullName | ForEach-Object { $pendingFiles += $_.FullName }
# While there are files still to zip
While($pendingFiles){
# Select first 10 files to zip and zip them
$ToZip = $pendingFiles | Select -First 10
& $7Zip "a" "$NewZipsFolder\File-$fileNumber.7z" $ToZip
# Remove first 10 zipped files from pending files array
$pendingFiles = $pendingFiles | Where-Object { $ToZip -notcontains $_ }
$fileNumber++
}
這將創建一個需要被拉鍊中的所有文件的列表。然後使用7z.exe
(7-zip)將它們分批壓縮成10個文件。
注意:對於變量$ZipFolder
& $NewZipsFolder
不要把尾部的反斜槓的文件夾路徑(\
)。
這工作!非常感謝!你剛剛救了我幾個小時的工作!我確實將.7z換成了我所需要的.zip,但它做了它應該做的事! –
你可以使用的東西沿着
$fileList = Get-Item -Path "C:\MyPhotosDir\*"
行文件的列表存儲在PowerShell中後,再設置7zip的別名
set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"
然後創建沿線的一個計數器循環
$i = 1
foreach $file in $fileList
#Build foder name name
$folderDir = "C:\MyPhotoArchive$($i - ($i % 10) + 1).7z"
sz a -t7z $folderDir $file.filename
end for
我一直在VB寫作一段時間,所以道歉,如果Powershell語法有點偏離。本質上應該添加10個文件到「C:\ MyPhotoArchive1」,10個文件添加到「C:\ MyPhotoArchive2」。我很長一段時間沒有使用7zip將文件添加到存檔中,但我認爲該調用僅使用a
,並應將文件添加到存檔,並在需要時創建一個。
7zip和可能最壓縮的工具,只能按文件大小不能分割https://sevenzip.osdn.jp/chm/cmdline/switches/volume.htm,你需要每一個zip文件來提取單個文件。你應該指定目的或期待結果 – Deptor