0

異なる変数名で同じオブジェクトの複製を作成したいと思います。必要なオブジェクトは、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 の元のデフォルト値を保持する必要があります (読み取り専用にすることは実行可能ではないようです)。この問題の回避策はありますか? 前もって感謝します。

4

1 に答える 1