powershell将文件添加到zip

时间:2012-12-05 17:32:19

标签: powershell zip

我正在尝试使用powershell

将文件添加到zip文件中

我可以创建zip文件,但无法解决如何将文件添加到其中

我正在使用

$zipfilename = 'c:\cwRsync\backup.zip'
$file = 'c:\cwRsync\backup.log'
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $zipfilename).IsReadOnly = $false
$zipfile = (New-Object -ComObject shell.application).NameSpace($zipfilename)
$zipfile.MoveHere($file.FullName)

这会创建zip文件,但不会添加新文件

我尝试了在stackoverflow上找到的以下代码

$zipfilename = "a.zip"
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
$app = new-object -com shell.application
$zip = ( get-item a.zip ).fullname
$folder = $app.namespace( $zip )
$item = new-item file.txt -itemtype file -value "Mooo" -force
$folder.copyhere( $item.fullname )

但是添加了由powershell创建的文件,而我想添加一个现有文件

非常感谢任何帮助

3 个答案:

答案 0 :(得分:1)

CopyHere函数只接受一个字符串,该字符串是文件的路径。例如:

$folder.copyhere( "c:\PathToYourFile\YourFile" )

提示:

Powershell Pack Module有一些有用的工具,其中一个是zip工具,可以将你的代码减少到1行:

Copy-ToZip "c:\PathToYourFile\YourFile" -ZipFile a.zip

答案 1 :(得分:1)

要创建 zip 存档:

powershell Compress-Archive %file% %file%.zip

要替换存档(使用不同的文件):

powershell Compress-Archive -force %different_file% %file%.zip

要将文件添加到(现有)存档:

powershell Compress-Archive -update %2nd_file% %file%.zip

在 Win 10 CMD Powershell 5.1 上测试

答案 2 :(得分:-1)

我从笔记中提取了这个。从脚本人的网站上下来,也许这会有所帮助...

$source = "D:\temp\test"
$destination = "d:\temp\csvdir_Backup.zip"
If(Test-path $destination) {Remove-item $destination}
Add-Type -assembly "system.io.compression.filesystem"
[io.compression.zipfile]::CreateFromDirectory($Source, $destination)