Làm cách nào để tắt đầu ra của 7-Zip?


34

Tôi sử dụng 7-Zip để nén các tệp trong một tệp bó như thế này:

...\right_path\7z a output_file_name.zip file_to_be_compressed

Tôi đã nhận được đầu ra sau đây:

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

Có thể tắt đầu ra này (nghĩa là tôi không muốn in bất cứ thứ gì)?

Câu trả lời:


29

Chỉ cần thêm > NUL:vào cuối lệnh của bạn.


1
Đại tràng để làm gì?
Peter Mortensen

3
@PeterMortensen: Trong bảng điều khiển DOS và Windows, các tên thiết bị dành riêng như NULcó thể được theo sau bởi dấu hai chấm tùy chọn. Theo tôi biết, nó không thực hiện chức năng thực tế, nhưng đóng vai trò như một lời nhắc nhở trực quan rằng đó là một thiết bị và tương đương với việc sử dụng dấu hai chấm sau một ký tự ổ đĩa.
Tạm dừng cho đến khi có thông báo mới.

17

Bạn có thể sử dụng lệnh -bs để kiểm soát đầu ra đi đâu. Để ngăn chặn bất cứ điều gì trừ đầu ra lỗi, tôi sẽ thêm -bso0 -bsp0.


Điều này đúng, nhưng được giới thiệu trong phiên bản 7Zip 15.01 hoặc sau 9.38beta Nguồn: sourceforge.net/p/sevenzip/discussion/45797/thread/8a45fa74 Synology DSM 6.1.x thực tế bao gồm 7zip với phiên bản 9.20 và không có tùy chọn như vậy.
PeterCo

12

Rất khuyến khích để xem các thông điệp trạng thái trong quá trình. Để tránh các tin nhắn dài, chỉ hiển thị các xác nhận:

...\right_path\7z a output_file_name.zip file_to_be_compressed | findstr /b /r /c:"\<Everything is Ok" /c:"\<Scanning" /c:"\<Creating archive"

Cảm ơn findstrgiải pháp! Dường như bạn hơi có thể rút ngắn cuộc gọi mà bởi một trong hai Không ghi /bhoặc cả hai \rvà các \<bên trong chuỗi tìm kiếm. Tôi sẽ đi cùng findstr /b /c:"Everything is Ok" /c:"Scanning" /c:"Creating archive"vì bạn không cần biểu thức chính quy ( /rtùy chọn) ở đây - /bchỉ tìm kiếm ở đầu chuỗi.
Oliver

nếu bạn muốn sử dụng các thông báo trạng thái để kiểm tra xem lệnh có thành công hay không, tốt hơn là sử dụng mã trả về ( 0để thành công và các thông tin khác chi tiết những gì không thành công). Kịch bản dễ dàng đưa ra quyết định dựa trên các giá trị này hơn là trên tin nhắn.
WoJ

1
Câu trả lời chính xác. Tôi đã đi với ... | findstr /v /b /c:"Compressing "để thoát khỏi danh sách tập tin nhưng giữ các thông báo trạng thái khác.
Duncan Smart

5

Cải thiện câu trả lời của Bruno Dermario , tôi cũng muốn báo cáo lỗi và có thể kiểm tra chúng bằng tay.

...\right_path\7z 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.

2

Trong trường hợp PowerShell là một tùy chọn hoặc ai đó có thể sử dụng nó, đây là những gì tôi đã làm, dựa trên ý tưởng của findstrcâu trả lời.

& $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
}

Trong hoạt động bình thường, điều này chỉ để lại dòng "Mọi thứ đều ổn". Nếu bất cứ điều gì bất thường được in, nó vẫn hiển thị (ngoại trừ các dòng trống vì chúng xuất hiện thường xuyên trong đầu ra thông thường).

Điều này được thử nghiệm cho đầu ra định dạng 7z. Các định dạng lưu trữ khác có thể tạo ra các thông báo khác ngoài "Nén". Trích xuất có khả năng cũng sẽ tạo ra các thông điệp khác nhau. Nhưng bạn có thể dễ dàng điều chỉnh bộ lọc theo nhu cầu của bạn.

Một ý tưởng phức tạp hơn sẽ là chuyển hướng tất cả đầu ra sang bộ đệm và chỉ in nó trong trường hợp lệnh trả về mã thoát lỗi. Đây là một phương pháp hoạt động với tất cả các lệnh cho phép chuyển hướng và cung cấp mã thoát lỗi chính xác.


1

Chia sẻ findstrgiải pháp của tôi :

%ZIP% a -tzip %FILE% %Folder% | findstr /I "archive everything"

Vì vậy, đầu ra 14 dòng ban đầu:


7-Zip 18.01 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2018-01-28

Scanning the drive:
4 folders, 13 files, 88957 bytes (87 KiB)

Creating archive: Releases\Archive.zip

Add new data to archive: 4 folders, 13 files, 88957 bytes (87 KiB)


Files read from disk: 13
Archive size: 33913 bytes (34 KiB)
Everything is Ok

co lại thành 4 dòng:

Creating archive: Releases\Archive.zip
Add new data to archive: 4 folders, 13 files, 88957 bytes (87 KiB)
Archive size: 33912 bytes (34 KiB)
Everything is Ok

nó chỉ thu nhỏ sOut, các cảnh báo và lỗi chuyển sang sErr, vì vậy bạn vẫn sẽ thấy chúng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.