繁体   English   中英

替换* .zip文件中的文件而不在Powershell中解压缩(解压缩)

[英]Replacing files in a *.zip file without unzipping (extracting) in Powershell

嗨,大家好!

目前,我正在尝试在Powershell中创建一个脚本,它将替换/删除* .zip文件中的文件而不提取它

我知道可以通过使用7Zip和WinRAR等应用程序手动完成,也可以只在文件夹资源管理器中打开zip存档,但我正在寻找一种自动执行此操作的方法。

我是PowerShell和一般编程的新手,所以我不能提出任何初步的代码。 我试图在网上搜索答案,但没有找到任何对我有用的东西。

所以问题是:
假设我们有一个名为Photos(Photos.zip)的zip存档。 存档包含5张图像。 如何替换/删除Photos.zip中的图像而不在Powershell中提取它?

任何有用资源的代码/想法/链接都将受到高度赞赏。

我使用了以下解决方案。

首先,我使用以下代码将旧文件从存档移动到临时文件夹:

#Path to the temporary folder
$pathToTemporaryFolder = "C:\...\Temporary"
#Path to a file that will be moved from the archive to the temporary folder
$pathToFileToBeMoved = "C:\...\Photos.zip\My Photos\My Image.png"
(New-Object -COM Shell.Application).NameSpace("$pathToTemporaryFolder").MoveHere("$pathToFileToBeMoved")

然后,我将一些新文件复制到存档:

#Path to the folder with a new file
$pathToFolderWithNewFile = "C:\...\New Images\My New Image.jpeg"
#Path to a folder in the archive where the new file will be copied to
$pathToFolderInArchive = "C:\...\Photos.zip\My Photos"
(New-Object -COM Shell.Application).NameSpace("$pathToFolderInArchive").CopyHere("$pathToFolderWithNewFile")

最后我删除了临时文件夹

Remove-Item -Path "C:\...\Temporary" -Recurse

这是我从存档中删除文件并将新文件复制到其中而不解压缩/解压缩的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM