Я вижу это в три этапа:
1. Распакуйте во временное чистое место.
2. поменяй там свои файлы
3. Застегните это место назад.
код будет иметь функции:
function Unzip_archive ($ArchiveFullPath, $Temp_Work_Fld) {
try {
#unzip
Add-Type -assembly 'system.io.compression.filesystem'
[io.compression.zipfile]::ExtractToDirectory($ArchiveFullPath, $Temp_Work_Fld)
}
catch {
throw "Failed to unzip the artifact"
}
Remove-Item $ArchiveFullPath -Force #only if you want to delete the archive
}
function CreateZipArchive($FolderToArchive, $ZipArchiveFullName){
$source = Get-ChildItem * -Directory | Where-Object {$_.FullName -match "$FolderToArchive"}
write-host "`nArchiving: $source ........."
Add-Type -Assembly system.IO.compression.filesystem
$compressionlevel = [System.IO.Compression.CompressionLevel]::Optimal
[io.compression.zipfile]::CreateFromDirectory($source, $ZipArchiveFullName, $compressionlevel, $true)
write-host "nDone !"
}
, затем просто вызовите функции до и после внесения изменений во временную папку