Używam 7-Zip do kompresji plików wewnątrz pliku wsadowego, takiego jak to:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Mam następujące dane wyjściowe:
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
Czy można wyłączyć to wyjście (tzn. Nie chcę, aby cokolwiek było drukowane)?
NUL
po opcjonalnym dwukropku. O ile mi wiadomo, nie wykonuje żadnej rzeczywistej funkcji, ale służy jako wizualne przypomnienie, że jest to urządzenie i równolegle używa dwukropka po literze dysku.Możesz użyć polecenia -bs, aby kontrolować, gdzie idzie wyjście. Aby zatrzymać cokolwiek poza błędem, dodałbym
-bso0 -bsp0
.źródło
Zdecydowanie zaleca się przeglądanie komunikatów o stanie. Aby uniknąć długich wiadomości, wyświetlaj tylko potwierdzenia:
źródło
findstr
rozwiązanie! Wygląda na to, że możesz nieco skrócić to połączenie, pomijając/b
lub zarówno wewnątrz, jak\r
i\<
wewnątrz ciągów wyszukiwania. Poszedłbym z tym,findstr /b /c:"Everything is Ok" /c:"Scanning" /c:"Creating archive"
ponieważ nie potrzebujesz tutaj wyrażeń regularnych (/r
opcja) -/b
już szuka tylko na początku ciągów.0
przypadku powodzenia i innych, które szczegółowo opisują to, co się nie powiodło). W skrypcie łatwiej jest podejmować decyzje na podstawie tych wartości niż na podstawie wiadomości.... | findstr /v /b /c:"Compressing "
aby pozbyć się listy plików, ale zachowaj inne komunikaty o stanie.Poprawiając odpowiedź Bruno Dermario , chciałem również zgłosić błędy i móc je sprawdzić ręcznie.
źródło
W przypadku, gdy PowerShell jest opcją lub ktoś mógłby jej użyć, oto co zrobiłem, w oparciu o ideę
findstr
odpowiedzi.W normalnej pracy pozostawia to tylko wiersz „Everything is Ok”. Jeżeli wydrukowane zostanie coś nietypowego, pozostaje ono widoczne (z wyjątkiem pustych linii, które pojawiają się tak często na zwykłym wydruku).
Jest to testowane pod kątem wyjścia w formacie 7z. Inne formaty archiwów mogą generować inne komunikaty niż „Kompresowanie”. Wyodrębnianie prawdopodobnie spowoduje także powstanie różnych komunikatów. Ale możesz łatwo dostosować filtr do swoich potrzeb.
Bardziej złożonym pomysłem byłoby przekierowanie wszystkich danych wyjściowych do bufora i wydrukowanie go tylko w przypadku, gdy polecenie zwróci kod wyjścia błędu. Jest to metoda, która działa ze wszystkimi poleceniami, które umożliwiają przekierowanie i zapewniają dokładny kod wyjścia błędu.
źródło
Udostępnianie mojego
findstr
rozwiązania:Tak więc oryginalne 14-liniowe wyjście:
zmniejsz do 4 linii:
zmniejsza tylko sOut, ostrzeżenia i błędy trafiają do sera, więc nadal je zobaczysz
źródło