我想以不同的变量名创建相同对象的副本。我需要的对象是来自 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()
为此,我需要能够将 $file 作为单独的实体从 $zipfile 复制,或者至少保留 $file 的原始默认值(使其只读似乎不可行)。有没有解决这个问题的方法?提前致谢。