5

powershell を使用してファイルを zip ファイルに追加しようとしています

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によって作成されたファイルを追加しますが、既存のファイルを追加したい

どんな助けでも大歓迎です

4

3 に答える 3

2

このCopyHere関数は、ファイルへのパスである文字列を受け取るだけです。例えば:

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

ヒント:

Powershell Pack モジュールには便利なツールがいくつかあります。そのうちの 1 つは、コードを 1 行に減らす zip ユーティリティです。

Copy-ToZip "c:\PathToYourFile\YourFile" -ZipFile a.zip
于 2012-12-05T20:01:52.543 に答える
-1

I pulled this from my notes. Got it off the scripting guy's website, maybe this will help...

$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) 
于 2017-01-02T22:16:40.883 に答える