Como desativar a saída do 7-Zip?

25

Eu uso o 7-Zip para compactar arquivos dentro de um arquivo em lote como este:

...\right_pathz a output_file_name.zip file_to_be_compressed

Eu recebi a seguinte saída:

7-Zip 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03
Scanning

Creating archive output_file_name.zip

Compressing  file_to_be_compressed

Everything is Ok

É possível desativar esta saída (ou seja, não quero que nada seja impresso)?

    
por Misha Moroshko 01.10.2010 / 06:27

5 respostas

26

Basta adicionar > NUL: ao final do seu comando.

    
por 01.10.2010 / 06:37
11

É altamente recomendável exibir mensagens de status no processo. Para evitar mensagens longas, exiba apenas confirmações:

...\right_pathz a output_file_name.zip file_to_be_compressed | findstr /b /r /c:"\<Everything is Ok" /c:"\<Scanning" /c:"\<Creating archive"
    
por 31.08.2012 / 06:08
10

Você pode usar o comando -bs para controlar a saída do resultado. Para parar qualquer coisa, menos a saída de erro, eu adicionaria -bso0 -bsp0 .

    
por 08.11.2016 / 01:08
5

Melhorando a resposta do Bruno Dermario , também gostaria de relatar erros e poder verificá-los manualmente.

...\right_pathz a output_file_name.zip file_to_be_compressed > 7z_log.txt
type 7z_log.txt | findstr /b /c:"Everything is Ok" /c:"Scanning" /c:"Creating archive" /c:"Error"
echo.
echo (In case of Error check 7z_log.txt)
echo.
    
por 30.10.2015 / 03:31
2

Caso o PowerShell seja uma opção ou alguém possa usá-lo, eis o que fiz, com base na ideia da findstr answer.

& $sevenZipBin a "$archiveFile" * | where {
    $_ -notmatch "^7-Zip " -and '
    $_ -notmatch "^Scanning$" -and '
    $_ -notmatch "^Creating archive " -and '
    $_ -notmatch "^\s*$" -and '
    $_ -notmatch "^Compressing "
}
if (-not $?)
{
    # Show some error message and possibly exit
}

Em operação normal, isso deixa apenas a linha "Tudo está ok". Se alguma coisa incomum for impressa, ela permanecerá visível (exceto para linhas vazias, como elas aparecem com muita frequência na saída regular).

Isso é testado para saída no formato 7z. Outros formatos de arquivo podem gerar outras mensagens além de "Compressão". A extração provavelmente também produzirá mensagens diferentes. Mas você pode adaptar facilmente o filtro às suas necessidades.

Uma ideia mais complexa seria redirecionar toda a saída para um buffer e apenas imprimi-lo caso o comando retorne um código de saída de erro. Este é um método que funciona com todos os comandos que permitem redirecionar e fornecer um código de saída de erro preciso.

    
por 28.03.2014 / 15:11

Tags