異なる変数名で同じオブジェクトの複製を作成したいと思います。必要なオブジェクトは、dotnetzip からのアーカイブ ファイルです。
次のコードは完全な実装です。
[System.Reflection.Assembly]::LoadFrom($zipFileDirectory + "Ionic.Zip.dll")
$zipfile = [Ionic.Zip.ZipFile]::Read($zipfilename)
foreach ($file in $zipfile)
{
$strSearchItem = [string]$file.FileName
$strSearchItem = $strSearchItem.TrimEnd("/")
$newfile = $file.PSObject.Copy()
for ($i = 0; $i -lt $newfile.Count; $i++)
{
if ($strSearchItem -like $searchFolderName + "/*")
{
$newFile[$i].FileName = $newFile[$i].FileName.Replace($searchFolderName + "/", "")
$newFile[$i].Extract($fileDestination, [Ionic.Zip.ExtractExistingFileAction]::OverWriteSilently)
}
}
}
$zipfile.Dispose()
この目的のために、$zipfile とは別のエンティティとして $file をコピーできる必要があります。または、少なくとも $file の元のデフォルト値を保持する必要があります (読み取り専用にすることは実行可能ではないようです)。この問題の回避策はありますか? 前もって感謝します。