2012-03-01 7 views
5

Sto cercando il comando equivalente per PowerShell:Una riga per la cartella zippata in PowerShell?

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

precisare se tale one-liner esiste che crea un file zip da una cartella in modo ricorsivo aggiungendo il contenuto del source-folder, che non necessita di un 3 ° libreria di feste come 7-zip?

risposta

4

Partendo Powershell 5, è possibile utilizzare il built-in Compress-Archive comando:

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

Se si utilizza PowerShell prima della versione 5, non esiste una soluzione uno di linea, senza un programma di terze parti come 7-zip . Tuttavia, è possibile sfruttare le funzionalità di zipping incorporate di Windows Explorer come esposte attraverso lo COM Shell object per creare la propria funzione di PowerShell. This page outlines the details su come farlo.

+0

ti invitiamo a mostrare il 7- zip sloution. Grazie –

+1

@ F505 ora puoi farlo direttamente in PS, vedi la risposta aggiornata. – zdan

+0

@ F505 Stai cercando di estrarre da un archivio, non di crearne uno. Non credo che le funzioni di archivio di PowerShell integrate supportino gzip. Prova a fare una domanda separata. – zdan

4

In realtà, esiste un equivalente a una riga che crea archivi zip, e c'è persino un one-liner per creare una corrispondenza esatta, vale a dire un file tar. Il primo posto che dovresti cercare per una tale funzione di libreria è PowerShell Community Extensions, fornendo una vasta gamma di estensioni di librerie di alta qualità a PowerShell. Sfortunatamente, una ricerca sul web per un elemento specifico, come la funzione di creazione zip, probabilmente non restituisce nulla perché da nessuna parte sul sito o nella documentazione includono un elenco dei cmdlet e delle funzioni fornite! Per scoprire è necessario installare la libreria quindi fare help about_pscx. Spulciando che, qui è quello che troverete rilevanti per la vostra domanda:

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. 

E qui, dai loro esempi incorporati, sono come li potrebbe utilizzare:

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

Queste funzioni sono attualmente interrotte in PSCX 2.1 e versioni successive. Nessun ETA in fase di correzione. – Encryption

Problemi correlati