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


27

私が使う 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

この出力を無効にすることは可能ですか(つまり、何も印刷したくありません)。

回答:


27

追加するだけ > NUL: あなたのコマンドの最後に。


1
コロンとは何ですか?
Peter Mortensen

2
@PeterMortensen:DOSおよびWindowsコンソールでは、次のような予約済みのデバイス名 NUL その後にオプションのコロンを続けることができます。私の知る限りでは、実際には機能しませんが、それがデバイスであることを視覚的に思い出させるものとして機能し、ドライブ文字の後にコロンを使用することと同じです。
Dennis Williamson

13

あなたが使用することができます -bs 出力先を制御するコマンド。エラー出力以外のものを止めるには、追加します。 -bso0 -bsp0


これは正しいですが、7Zipバージョン15.01以降または9.38ベータ版以降に導入されました。 sourceforge.net/p/sevenzip/discussion/45797/thread/8a45fa74 実際のSynology DSM 6.1.xにはバージョン9.20の7zipが含まれており、そのようなオプションはありません。
PeterCo

11

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

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

に感謝します findstr 溶液!どちらかを省略することで、その呼び出しをいくらか短縮できるようです。 /b または両方 \r そしてその \< 検索文字列の中一緒に行きたい findstr /b /c:"Everything is Ok" /c:"Scanning" /c:"Creating archive" 正規表現は必要ないので /r オプション)はこちら - /b すでに文字列の先頭だけを検索します。
Oliver

ステータスメッセージを使用してコマンドが成功したかどうかを確認する場合は、リターンコードを使用することをお勧めします( 0 成功と失敗したことを詳述する他の人のために)スクリプトでは、メッセージよりもこれらの値に基づいて決定する方が簡単です。
WoJ

1
素晴らしい答えです。一緒に行きました ... | findstr /v /b /c:"Compressing " ファイルリストを削除しますが、他のステータスメッセージは残します。
Duncan Smart

5

改善する ブルーノダーマリオ 答え、私もエラーを報告し、手動でそれらをチェックできるようにしたかった。

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

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
}

通常の操作では、これで「すべては問題ありません」という行だけが残ります。異常なものが印刷されても、表示されたままになります(通常の出力では頻繁に現れる空行を除く)。

これは7zフォーマットの出力でテストされています。他のアーカイブフォーマットは "圧縮"以外のメッセージを生成するかもしれません。抽出すると、異なるメッセージも生成される可能性があります。しかし、あなたはあなたのニーズにフィルターを簡単に合わせることができます。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.