這可以通過使用PowerShell
和最新完成的7-Zip 15.14 exe文件。 Download並安裝7-Zip,一旦安裝7z.exe應該位於以下位置C:\Program Files\7-Zip\7z.exe
。
$ArchivesFolder = "T:\Your Archives\"
$7zipExe = "C:\Program Files\7-Zip\7z.exe"
$search = "Customer1"
$replace = "Customer2"
gci $ArchivesFolder -Filter "*.zip" | % {
$archive = $_.FullName
Write-Host $archive -ForegroundColor DarkYellow
& $7zipExe l $archive `
| select -Skip 11 `
| %{IF($_.Length -gt 52){$_.substring(53)}} `
| ?{$_ -notmatch "\d* files, \d* folders|------------------------" -and $_ -match $search } `
| %{
write-host "Renaming:[$_] To:[$($_ -replace $search,$replace)]" -ForegroundColor cyan
& $7zipExe rn $archive "$_" "$($_ -replace $search,$replace)" | Out-Null # Comment out
}
}
以上PowerShell
將通過.zip文件一個給文件夾($ ArchivesFolder)遞歸。它將在每個zip文件中查找並用給定替換值($ replace)替換/重命名與給定搜索變量($search
)匹配的文件名的任何部分。
如果您想在運行該腳本之前查看該腳本的功能,請使用#
將其旁邊的行註釋掉(# Comment out
)。這將阻止任何文件被重命名。
腳本使用7z.exe語法的rn
參數重命名存檔內部文件是
7z rn <archive_name> <src_file_1> <dest_file_1> [ <src_file_2> <dest_file_2> ... ]
注意這隻有在15.14版本7z.exe的工作。
快速搜索似乎表明,ZIP檔案不支持此操作。充其量,你需要流式傳輸一個新的zip文件。 –