O 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>
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>
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 -Path
parâmetro, pois -LiteralPath não os aceita.
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
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
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
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 -Update
parâ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
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.
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>
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 -DestinationPath
parâ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 -DestinationPath
omitirmos, o PowerShell criará a pasta “Archive” no caminho “C: \ Users \ brady” e extrairá os arquivos do archive para a pasta.
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 -Force
parâmetro.
Você só deve usar o -Force
parâmetro se os arquivos antigos não forem mais necessários, pois isso substituirá irreversivelmente os arquivos em seu computador.