2016-12-10 20 views
5

Tôi có thể loại trừ một thư mục nào đó khi nén một tệp lưu trữ như thế này không?Làm cách nào để loại trừ một thư mục trong nén lưu trữ

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

Bây giờ nó luôn luôn tiết kiệm cấu trúc thư mục toàn bộ $destinationpath vào kho lưu trữ, nhưng kể từ khi lưu trữ là trong cùng một thư mục, nó luôn luôn được nén vào một kho lưu trữ mới, làm cho đôi lưu trữ có kích thước mỗi khi tôi chạy lệnh.

+1

đặt đích đến bên ngoài thư mục và sau khi nén xong, hãy di chuyển đến hoặc chọn nội dung của đích không bao gồm lưu trữ rồi nén – Nkosi

Trả lời

4

bạn có thể sử dụng tùy chọn -update của Compress-Archive. Chọn subdirs của bạn với Get-ChildItem và ở đâu

như nó:

$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

Nhận tất cả các tập tin bạn muốn nén, trừ các tập tin và thư mục mà bạn không muốn nén và sau đó vượt qua đó để cmdlet

# 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 
Các vấn đề liên quan