私は 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
この出力を無効にすることはできますか(つまり、何も印刷したくない)。
コマンドの最後に> NUL:
を追加するだけです。
-bs コマンドを使用して、出力先を制御できます。エラー出力以外を停止するには、-bso0 -bsp0
を追加します。
プロセスのステータスメッセージを表示することを強くお勧めします。長いメッセージを回避するには、確認のみを表示します。
...\right_path\7z a output_file_name.Zip file_to_be_compressed | findstr /b /r /c:"\<Everything is Ok" /c:"\<Scanning" /c:"\<Creating archive"
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.
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形式の出力でテストされています。他のアーカイブ形式では、「圧縮」以外のメッセージが生成される場合があります。抽出すると、別のメッセージも生成される可能性があります。ただし、フィルターをニーズに簡単に適合させることができます。
より複雑なアイデアは、すべての出力をバッファーにリダイレクトし、コマンドがエラー終了コードを返した場合にのみそれを印刷することです。これは、リダイレクトを許可し、正確なエラー終了コードを提供するすべてのコマンドで機能するメソッドです。
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に送られるので、それでもそれらを見る