Como compactar (e descompactar) arquivos usando o PowerShell

PowerShellHeader

formato de arquivo ZIP  reduz o tamanho dos arquivos compactando-os em um único arquivo. Esse processo economiza espaço em disco, criptografa dados e facilita o compartilhamento de arquivos com outras pessoas. Veja como compactar e descompactar arquivos usando o PowerShell.

Como compactar arquivos usando PowerShell

Vamos começar compactando alguns arquivos em um arquivo ZIP usando o cmdlet Compress-Archive. Ele pega o caminho para qualquer arquivo que você deseja compactar – vários arquivos são separados por uma vírgula – e os arquiva no destino que você especificar.

Primeiro, abra o PowerShell  procurando por ele no menu Iniciar e digitando o seguinte comando, substituindo <PathToFiles>e <PathToDestination>pelo caminho para os arquivos que você deseja compactar e o nome e a pasta que deseja incluir, respectivamente:

Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>

Compacte alguns arquivos no PowerShell.

Ao fornecer o caminho de destino, certifique-se de dar um nome ao arquivo ou o PowerShell o salvará como “.zip” onde você especificar.

Nota: As citações em torno do caminho são necessárias apenas quando o caminho do arquivo contém um espaço.

Como alternativa, para compactar todo o conteúdo de uma pasta – e todas as suas subpastas – você pode usar o seguinte comando, substituindo <PathToFolder>  e <PathToDestination>pelo caminho para os arquivos que deseja compactar e o nome e a pasta para onde deseja que ele vá, respectivamente:

Compress-Archive -LiteralPath <PathToFolder> -DestinationPath <PathToDestination>

Compacte uma pasta inteira e todo o seu conteúdo.

No exemplo anterior, colocamos o caminho para um diretório com vários arquivos e pastas sem especificar arquivos individuais. O PowerShell pega tudo dentro do diretório raiz e o compacta, com subpastas e tudo.

O cmdlet Compress-Archive permite que você use um caractere curinga (*) para expandir a funcionalidade ainda mais. Ao usar o caractere, você pode excluir o diretório raiz, compactar apenas os arquivos de um diretório ou escolher todos os arquivos de um tipo específico. Para usar um caractere curinga com Compress-Archive, você deve usar o -Pathparâmetro, pois -LiteralPath não os aceita.

Recomendado:  Como vincular diretamente a um texto em uma página da web no Chrome

Acima, abordamos como incluir o diretório raiz e todos os seus arquivos e subdiretórios ao criar um arquivo morto. No entanto, se quiser excluir a pasta raiz do arquivo Zip, você pode usar um caractere curinga para omiti-la do arquivo. Ao adicionar um asterisco (*) ao final do caminho do arquivo, você diz ao PowerShell apenas para pegar o que está dentro do diretório raiz. Deve ser parecido com isto:

Compress-Archive -Path C: \ path \ to \ file \ * -DestinationPath C: \ path \ to \ archive.zip

Compacte todo o conteúdo de uma pasta, sem a pasta raiz em si.

Em seguida, digamos que você tenha uma pasta com vários tipos de arquivos diferentes (.doc, .txt, .jpg etc.), mas deseja compactar todos de um tipo. Você pode dizer ao PowerShell para arquivá-los sem tocar os outros explicitamente. A notação do comando seria assim:

Compress-Archive -Path C: \ path \ to \ file \ *. Jpg -DestinationPath C: \ path \ to \ archive.zip

Compacte apenas tipos de arquivo específicos de uma pasta.

Nota: Subdiretórios e arquivos da pasta raiz não são incluídos no arquivo com este método.

Finalmente, se você deseja um arquivo que compacta apenas os arquivos no diretório raiz – e todos os seus subdiretórios – você deve usar o curinga estrela-ponto-estrela (*. *) Para compactá-los. Seria mais ou menos assim:

Compress-Archive -Path C: \ path \ to \ file \ *. * -DestinationPath C: \ path \ to \ archive.zip

Compacte apenas os arquivos da pasta raiz com o uso do widlcard estrela-ponto-estrela (*. *).

Nota: Subdiretórios e arquivos da pasta raiz não são incluídos no arquivo com este método.

Mesmo após a conclusão do arquivo, você pode atualizar um arquivo compactado existente com o uso do -Updateparâmetro. Ele permite que você substitua versões de arquivo mais antigas no arquivo por outras mais novas com os mesmos nomes e adicione arquivos que foram criados no diretório raiz. Vai parecer algo assim:

Compress-Archive -Path C: \ path \ to \ files -Update -DestinationPath C: \ path \ to \ archive.zip

Atualize um arquivo zip já existente com o uso do parâmetro -Update.

Como descompactar arquivos usando PowerShell

Além de ser capaz de compactar arquivos e pastas, o PowerShell tem a capacidade de descompactar arquivos. O processo é ainda mais fácil do que compactá-los; tudo que você precisa é o arquivo de origem e um destino para os dados prontos para descompactar.

Recomendado:  Como reverter o kernel no Linux

Abra o PowerShell e digite o seguinte comando, substituindo <PathToZipFile>e <PathToDestination>pelo caminho para os arquivos que você deseja compactar e o nome e a pasta que deseja acessar, respectivamente:

Expand-Archive -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>

Descompacte um arquivo com o cmdlet Expand-Archive.

A pasta de destino especificada para extrair os arquivos será preenchida com o conteúdo do arquivo. Se a pasta não existia antes da descompactação, o PowerShell criará a pasta e colocará o conteúdo nela antes de descompactar.

Por padrão, se você omitir o -DestinationPathparâmetro, o PowerShell descompactará o conteúdo no diretório raiz atual e usará o nome do arquivo Zip para criar uma nova pasta.

No exemplo anterior, se -DestinationPathomitirmos, o PowerShell criará a pasta “Archive” no caminho “C: \ Users \ brady” e extrairá os arquivos do archive para a pasta.

Se você omitir o parâmetro -DestinationPath, o PowerShell extrairá o zip em seu diretório atualmente selecionado.

Se a pasta já existir no destino, o PowerShell retornará um erro ao tentar descompactar os arquivos. No entanto, você pode forçar o PowerShell a substituir os dados pelos novos usando o -Forceparâmetro.

Você só deve usar o -Forceparâmetro se os arquivos antigos não forem mais necessários, pois isso substituirá irreversivelmente os arquivos em seu computador.