2012-03-01 116 views
5

我在尋找等價的PowerShell命令:單行在PowerShell中壓縮文件夾?

tar -zcvf tar-archive-name.tar.gz source-folder 

會有這樣一個班輪存在,創建一個文件夾遞歸添加source-folder的內容,並不需要一個第三一個zip文件像7-zip這樣的派對圖書館?

回答

4

Powershell 5開始,你可以使用內置的Compress-Archive命令:

Compress-Archive -Path source-folder -DestinationPath archive-name.zip 

如果使用之前版本5 PowerShell中,有沒有像7-ZIP第三方程序中沒有一個班輪解決方案。但是,您可以利用通過COM Shell object公開的windows explorer中內置的壓縮​​功能來構建自己的PowerShell功能來執行此操作。 This page outlines the details關於如何這樣做。

+0

能否請你告訴7-拉鍊sloution。謝謝 – 2018-01-10 17:41:14

+1

@ F505您現在可以直接在PS中執行此操作,請參閱最新的答案。 – zdan 2018-01-10 18:26:24

+0

@ F505您正試圖從檔案中提取,而不是創建一個檔案。我不認爲內置的PowerShell存檔功能支持gzip。試着問一個單獨的問題。 – zdan 2018-01-10 23:12:01

4

實際上,有一行代碼可以創建zip檔案,甚至有一行代碼可以創建完全匹配,即一個tar文件。您應該首先尋找這樣的庫函數PowerShell Community Extensions,爲PowerShell提供了豐富的高質量庫擴展。不幸的是,對於某個特定項目的網絡搜索,如您的zip創建功能,可能會因爲無處在站點或文檔中而包含所提供的cmdlet和函數的列表,因此而不是會啓動任何內容。爲了找出你必須安裝庫,然後做help about_pscx。通過篩選,這裏是什麼,你會發現有關你的問題:

Write-Zip 
    Create ZIP format archive files from pipline or parameter input. 
Write-GZip 
    Create GNU ZIP (GZIP) format files from pipeline or parameter input. 
Write-Tar 
    Create Tape Archive (TAR) format files from pipeline or parameter input. 

在這裏,從他們的嵌入式例子,是如何使用它們:

PS> dir c:\logs\ -rec -inc *.log | write-zip -level 9 -removeoriginal 
PS> dir c:\logs\ -rec -inc *.log | write-tar -output logs.tar | write-gzip -level 9 | move-item c:\archived_logs\ 
+1

這些功能目前在PSCX 2.1及更高版本中被破解。沒有ETA正在修復。 – Encryption 2014-10-28 02:42:53