Existe uma linha que irá compactar / descompactar arquivos (* .zip) no PowerShell?
command-line-interface
powershell
compression
BlueGene
fonte
fonte
Respostas:
DotNetZip permitirá que você faça isso no PowerShell. Não é uma linha única, mas a biblioteca permitirá que você escreva o script do PowerShell necessário.
Você também pode usar a interface COM, consulte Compactar arquivos com o Windows PowerShell e empacotar um gadget da barra lateral do Windows Vista .
Pesquisar no Google "zip powershell" ou "descompactar powershell" também pode gerar resultados úteis.
fonte
É assim que você pode fazer isso puramente no Powershell sem nenhuma ferramenta externa. Isso descompacta um arquivo chamado test.zip no diretório de trabalho atual:
fonte
$destination.Copyhere($zip_file.items())
faz o descompactação real.function unzip($filename) { if (!(test-path $filename)) { throw "$filename does not exist" } $shell = new-object -com shell.application $shell.namespace($pwd.path).copyhere($shell.namespace((join-path $pwd $filename)).items()) }
Agora no .NET Framework 4.5, há uma classe ZipFile que você pode usar assim:
fonte
(Resolve-Path $someDir).Path
os argumentos.Você pode conferir as PSCX (Extensões da Comunidade do PowerShell), que possuem cmdlets especificamente para isso.
fonte
Eu sei que essa é uma pergunta muito antiga, mas eu só a vi ligada no Twitter, imaginando que eu postaria uma resposta atual.
O PowerShell 5, atualmente disponível no Windows 10 ou através da Visualização de Produção do Windows Management Framework 5 , vem com dois cmdlets internos para 'compactar' e 'descompactar':
fonte
Eu acho a solução mais simples para usar apenas binários do infozip que usei há anos e uso em um ambiente UNIX.
Seria fácil colocar um invólucro do PowerShell em torno da saída de texto, mas na prática eu nunca preciso disso, então não me incomodei.
http://www.info-zip.org/
fonte
Também gosto do Info-ZIP (o mecanismo Zip encontrado na maioria dos outros utilitários Zip) e do 7-Zip , outro favorito que possui um utilitário Zip para GUI e linha de comando. O ponto é que existem alguns bons utilitários de linha de comando que funcionarão para a maioria das tarefas do PowerShell.
Existem alguns truques para executar utilitários de linha de comando que não foram criados com o PowerShell em mente:
A execução de um executável que começa com um número no nome, o antecede com um E comercial (&).
& 7zip.exe
Agrupe cada token, o utilitário espera ver na linha de comando, entre aspas.
& "c: \ caminho com espaço \ SomeCommand.exe" "/ parameter2" "/ parameter2" "Valor do parâmetro2" "Valor2` "com uma citação"
Tente o seguinte:
Ou até:
fonte
James Holwell Gostei da sua resposta, mas a expandi um pouco
fonte
O WinRAR pode funcionar no modo CMD, aceitando argumentos
fonte
A abordagem iônica é fundamental:
https://dotnetzip.codeplex.com/wikipage?title=PS-Examples
suporta senhas, outros métodos de criptografia, etc.
fonte
Criei um módulo compatível com PowerShell 2.0 que usa os comandos nativos do sistema operacional Windows para compactar e descompactar arquivos de maneira síncrona. Isso funciona em sistemas operacionais mais antigos, como o Windows XP, e não requer o .Net 4.5 ou quaisquer outras ferramentas externas. As funções também bloquearão a execução do script até que todos os arquivos tenham sido compactados / descompactados. Você pode encontrar mais informações e o módulo no meu blog aqui .
fonte