web-dev-qa-db-ja.com

7-Zipの出力を無効にする方法は?

私は 7-Zip を使用して、次のようにバッチファイル内のファイルを圧縮します。

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

次の出力が得られました。

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

この出力を無効にすることはできますか(つまり、何も印刷したくない)。

34
Misha Moroshko

コマンドの最後に> NUL:を追加するだけです。

-bs コマンドを使用して、出力先を制御できます。エラー出力以外を停止するには、-bso0 -bsp0を追加します。

19
Evan

プロセスのステータスメッセージを表示することを強くお勧めします。長いメッセージを回避するには、確認のみを表示します。

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

Bruno Dermario の答えを改善して、エラーも報告して手動でチェックできるようにしたいと考えました。

...\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.
5
Ory Zaidenvorm

PowerShellがオプションである場合、または誰かがそれを使用できる場合は、findstr回答のアイデアに基づいて、ここで私が行いました。

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

通常の操作では、「Everything is Ok」の行のみが残ります。異常なものが印刷されても、表示されたままです(通常の出力で頻繁に表示される空の行は除きます)。

これは7z形式の出力でテストされています。他のアーカイブ形式では、「圧縮」以外のメッセージが生成される場合があります。抽出すると、別のメッセージも生成される可能性があります。ただし、フィルターをニーズに簡単に適合させることができます。

より複雑なアイデアは、すべての出力をバッファーにリダイレクトし、コマンドがエラー終了コードを返した場合にのみそれを印刷することです。これは、リダイレクトを許可し、正確なエラー終了コードを提供するすべてのコマンドで機能するメソッドです。

2
ygoe

findstrソリューションを共有する:

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

したがって、元の14行の出力:


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

4行に縮小します。

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

それはsOutのみを縮小し、警告とエラーはsErrに送られるので、それでもそれらを見る

1
yalov