Basta adicionar > NUL:
ao final do seu comando.
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)?
É 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"
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
.
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.
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.