2016-12-10 77 views
5

このようなアーカイブを圧縮すると、フォルダを削除することはできますか?圧縮アーカイブ内のフォルダを除外する方法

$compress = Compress-Archive $DestinationPath $DestinationPath\ARCHIVE\archiv-$DateTime.zip -CompressionLevel Fastest 

今では常にアーカイブに$destinationpathの全体のフォルダ構造を保存しますが、アーカイブは同じフォルダ内にあることから、それは常に新しいアーカイブにzip形式で圧縮されます、サイズはアーカイブダブル私は実行するたびに作りますコマンド。

+1

宛先をディレクトリの外に設定し、圧縮が完了したら、それを移動します。アーカイブを除いた宛先の内容を選択し、圧縮します。 – Nkosi

答えて

4

あなたはCompress-Archiveの-updateオプションを使用できます。 Get-ChildItemコマンドレットを使用してサブディレクトリを選択し、それはどこのような

$YourDirToCompress="c:\temp" 
$ZipFileResult="C:\temp10\result.zip" 
[email protected]("test", "test1", "test2") 

Get-ChildItem $YourDirToCompress -Directory | 
      where { $_.Name -notin $DirToExclude} | 
       Compress-Archive -DestinationPath $ZipFileResult -Update 
3

あなたは、圧縮したい、その後、コマンドレットにそれを渡していないファイルやフォルダを除くあなたが圧縮したいすべてのファイルを、取得

# target path 
$path = "C:\temp" 
# construct archive path 
$DateTime = (Get-Date -Format "yyyyMMddHHmmss") 
$destination = Join-Path $path "ARCHIVE\archive-$DateTime.zip" 
# exclusion rules. Can use wild cards (*) 
$exclude = @("_*.config","ARCHIVE","*.zip") 
# get files to compress using exclusion filer 
$files = Get-ChildItem -Path $path -Exclude $exclude 
# compress 
Compress-Archive -Path $files -DestinationPath $destination -CompressionLevel Fastest