Usando PowerShell para Criar Arquivos ZIP e Descompactar Arquivos
Nov 6, 2018
Às vezes pode ser útil criar arquivos zip programaticamente ou extrair arquivos de arquivos existentes. O Windows PowerShell 5.0 adicionou dois cmdlets para fazer exatamente isso. O cmdlet Compress-Archive permite que você crie novos arquivos a partir de pastas ou arquivos individuais e adicione arquivos aos arquivos existentes; o Extract-Archive pode ser usado para descompactar arquivos.
Conteúdo relacionado selecionado:
Se você ainda não tem o PowerShell 5.0 ou versão posterior instalado em seus sistemas, você pode baixar a versão mais recente do Windows Management Framework no site da Microsoft.
Usando PowerShell para Criar Arquivos Zip
Vamos começar usando o PowerShell para comprimir arquivos em um novo arquivo zip. Tudo o que você precisa fazer é usar o parâmetro -Path para especificar a pasta que deseja comprimir e o parâmetro –DestinationPath para especificar o nome do arquivo que deseja criar. O comando abaixo irá compactar a pasta Invoices no diretório raiz C e criar um arquivo chamado Invoices.zip na pasta Archives:
Compress-Archive -Path C:Invoices -DestinationPath C:ArchivesInvoices
Alternativamente, poderíamos compactar os arquivos na pasta Invoices individualmente usando -LiteralPath em vez de –Path. Este comando cria um arquivo compactado apenas com os dois arquivos explicitamente listados no parâmetro –LiteralPath:
Compress-Archive -LiteralPath C: InvoicesFile1.txt, C:InvoicesFile2.txt -DestinationPath C:ArchivesInvoices -Force
Observe que eu adicionei o parâmetro -Force para sobrescrever o arquivo que criei usando o primeiro comando. Sem o parâmetro -Force, você não pode sobrescrever arquivos existentes e o PowerShell solicitará que você adicione arquivos ao arquivo em vez disso.
Para adicionar arquivos a um arquivo, use o parâmetro -Update. O comando abaixo adiciona todos os arquivos na pasta Invoices ao arquivo existente Invoices.zip:
Compress-Archive -Path C:Invoices* -Update -DestinationPath C:ArchivesInvoices
Opcionalmente, você pode usar o parâmetro -CompressionLevel com um dos três valores: Optimal, NoCompression ou Fastest. Optimal é a configuração padrão se o parâmetro -CompressionLevel não for definido; ele usa a melhor compressão disponível, mas pode demorar mais do que usar Fastest. Para criar um arquivo sem compressão, use o valor NoCompression.
Conteúdo relacionado selecionado:
Usando PowerShell para Descompactar Arquivos
Extrair arquivos de um arquivo é ainda mais fácil do que criá-lo. Tudo o que você precisa fazer é especificar o nome do arquivo e a pasta de destino para os arquivos descompactados. O comando abaixo extrai o conteúdo do arquivo Invoices.zip para uma pasta chamada InvoicesUnzipped usando o cmdlet Expand-Archive.
Expand-Archive -LiteralPath C:ArchivesInvoices.Zip -DestinationPath C: InvoicesUnzipped
A pasta onde você deseja descompactar os arquivos não precisa existir; Expand-Archive criará automaticamente a pasta se necessário. Mas se os arquivos que você deseja descompactar já existirem na pasta de destino, Expand-Archive retornará um erro. Você pode sobrescrever arquivos na pasta de destino adicionando o parâmetro -Force ao comando.
Compartilhar em
Saiba Mais
Sobre o autor
Russell Smith
Consultor de TI
Consultor de TI e autor especializado em tecnologias de gestão e segurança. Russell tem mais de 15 anos de experiência em TI, escreveu um livro sobre segurança do Windows e coautorou um texto para a série Microsoft’s Official Academic Course (MOAC).