É assim que você pode fazer isso puramente no Powershell sem ferramentas externas. Isso descompacta um arquivo chamado test.zip no diretório de trabalho atual:
O 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.
Eu acho a solução mais simples para usar apenas binários infozip que eu uso há anos e uso em um ambiente UNIX.
PS> zip -9r ../test.zip *
PS> cd ..
PS> unzip -t test.zip Archive: test.zip
testing: LinqRepository/ OK
testing: LinqRepository/ApplicationService.cs OK
testing: LinqRepository/bin/ OK
...
No errors detected in compressed data of test.zip.
Seria simples colocar um wrapper powershell em torno da saída de texto, mas na prática eu nunca preciso disso, então não me incomodei.
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 uma GUI e um utilitário Zip de linha de comando. A questão é 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:
Executando um executável que começa com um número no nome, prefacie-o com um E comercial (&).
&7zip.exe
Envolva cada token, o utilitário espera ver na linha de comando, entre aspas.
&"c:\path with space\SomeCommand.exe" "/parameter2" "/parameter2" "valor do parâmetro2" "Value2 `" com aspas"
É assim que você pode fazer isso puramente no Powershell sem ferramentas externas. Isso descompacta um arquivo chamado test.zip no diretório de trabalho atual:
Agora no .NET Framework 4.5, existe uma classe ZipFile que você pode usar assim:
O 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 "unzip powershell" também pode gerar resultados úteis.
Eu sei que essa é uma pergunta muito antiga, mas acabei de vê-la vinculada no Twitter e pensei em postar uma resposta atual.
O PowerShell 5, atualmente disponível no Windows 10 ou por meio do Windows Management Framework 5 Production Preview , vem com dois cmdlets internos para 'compactar' e 'descompactar':
Você pode querer verificar o PowerShell Community Extensions (PSCX) , que possui cmdlets especificamente para isso.
Eu acho a solução mais simples para usar apenas binários infozip que eu uso há anos e uso em um ambiente UNIX.
Seria simples colocar um wrapper 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/
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 uma GUI e um utilitário Zip de linha de comando. A questão é 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:
Executando um executável que começa com um número no nome, prefacie-o com um E comercial (&).
&7zip.exe
Envolva cada token, o utilitário espera ver na linha de comando, entre aspas.
&"c:\path with space\SomeCommand.exe" "/parameter2" "/parameter2" "valor do parâmetro2" "Value2 `" com aspas"
Tente isto:
Ou ainda:
James Holwell, gostei da sua resposta, mas a expandi um pouco
WinRAR pode trabalhar no modo CMD aceitando argumentos
A abordagem iônica balança:
https://dotnetzip.codeplex.com/wikipage?title=PS-Examples
suporta senhas, outros métodos de criptografia, etc.