Saya menggunakan 7-Zip untuk mengkompres file di dalam file batch seperti ini:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Saya mendapat hasil sebagai berikut:
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
Apakah mungkin untuk menonaktifkan output ini (yaitu, saya tidak ingin ada yang dicetak)?
NUL
dapat diikuti oleh titik dua opsional. Sejauh yang saya tahu, itu tidak melakukan fungsi yang sebenarnya, tetapi berfungsi sebagai pengingat visual bahwa itu adalah perangkat dan paralel dengan penggunaan titik dua setelah huruf drive.Anda dapat menggunakan perintah -bs untuk mengontrol kemana output berjalan. Untuk menghentikan apa pun selain output kesalahan, saya akan menambahkan
-bso0 -bsp0
.sumber
Sangat disarankan untuk melihat pesan status dalam proses. Untuk menghindari pesan yang panjang, hanya tampilkan konfirmasi:
sumber
findstr
solusinya! Sepertinya Anda agak dapat mempersingkat panggilan itu dengan menghilangkan/b
atau keduanya\r
dan di\<
dalam string pencarian. Saya akan menggunakanfindstr /b /c:"Everything is Ok" /c:"Scanning" /c:"Creating archive"
karena Anda tidak perlu ekspresi reguler (/r
opsi) di sini -/b
sudah mencari hanya di awal string.0
untuk keberhasilan dan lainnya yang merinci apa yang gagal). Lebih mudah dalam skrip untuk membuat keputusan berdasarkan nilai-nilai ini daripada pada pesan.... | findstr /v /b /c:"Compressing "
menyingkirkan daftar file tetapi menyimpan pesan status lainnya.Meningkatkan jawaban Bruno Dermario , saya juga ingin melaporkan kesalahan dan dapat memeriksanya secara manual.
sumber
Jika PowerShell adalah opsi atau seseorang dapat menggunakannya, inilah yang saya lakukan, berdasarkan ide
findstr
jawabannya.Dalam operasi normal, ini hanya menyisakan garis "Semuanya OK". Jika sesuatu yang tidak biasa dicetak, tetap terlihat (kecuali untuk baris kosong seperti yang sering muncul dalam output reguler).
Ini diuji untuk output format 7z. Format arsip lain dapat menghasilkan pesan selain "Mengompresi". Mengekstrak kemungkinan juga akan menghasilkan pesan yang berbeda. Tetapi Anda dapat dengan mudah menyesuaikan filter dengan kebutuhan Anda.
Gagasan yang lebih kompleks adalah mengarahkan semua output ke buffer dan hanya mencetaknya jika perintah mengembalikan kode keluar kesalahan. Ini adalah metode yang bekerja dengan semua perintah yang memungkinkan pengarahan ulang dan memberikan kode keluar kesalahan yang akurat.
sumber
Berbagi
findstr
solusi saya :Jadi keluaran 14-baris asli:
menyusut ke 4-baris:
itu menyusut hanya sOut, peringatan dan kesalahan masuk ke sErr, jadi Anda masih akan melihatnya
sumber