eu uso 7-Zip para compactar arquivos dentro de um arquivo de lote como este:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Eu tenho 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 essa saída (ou seja, não quero que nada seja impresso)?
NUL
pode ser seguido por dois pontos opcionais. Tanto quanto eu sei, ele não executa nenhuma função real, mas serve como um lembrete visual de que é um dispositivo e paralela o uso de dois pontos após uma letra de unidade.Você pode usar o -bs comando para controlar onde a saída vai. Para parar qualquer coisa, menos a saída de erro, eu adicionaria
-bso0 -bsp0
.fonte
É altamente recomendável visualizar mensagens de status no processo. Para evitar mensagens longas, exiba apenas confirmações:
fonte
findstr
solução! Parece que você pode encurtar um pouco essa chamada, omitindo/b
ou ambos\r
e a\<
dentro das strings de pesquisa. Eu iria comfindstr /b /c:"Everything is Ok" /c:"Scanning" /c:"Creating archive"
já que você não precisa de expressões regulares (o/r
opção) aqui -/b
já procura apenas no início das strings.0
para o sucesso e outros que detalham o que falhou). É mais fácil em um script tomar decisões com base nesses valores do que nas mensagens.... | findstr /v /b /c:"Compressing "
para se livrar da listagem de arquivos, mas mantenha as outras mensagens de status.Melhorando Bruno Dermario resposta, também queria relatar erros e poder verificá-los manualmente.
fonte
Caso o PowerShell seja uma opção ou alguém possa usá-lo, aqui está o que eu fiz, com base na idéia do
findstr
responda.Em operação normal, isso deixa apenas a linha "Tudo está ok". Se qualquer coisa incomum for impressa, ela permanecerá visível (exceto para linhas vazias, como elas aparecem com tanta freqüência na saída regular).
Isso é testado para saída de formato 7z. Outros formatos de arquivo podem produzir 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. Esse é um método que funciona com todos os comandos que permitem redirecionar e fornecer um código de saída de erro preciso.
fonte