it-swarm-ja.com

同期時の詳細については、7Zipコマンドラインオプション

7Zipコマンドラインオプションで、アーカイブから無視/削除されたファイルを7zに出力させることができる引数はありますか? (オプション-uq0によって無視されるファイル)

呼び出し例:

"C:\Program Files\7-Zip\7z.exe" u "C:\Docz.7z" -uq0 "C:\Documentsx\*"

7Zip Verbose:

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Scanning
Updating archive C:\Docz.7z
Compressing hello.txt
Everything is Ok

アーカイブが追加または置換されると、「Compressinghello.txt」と表示されます。

詳細情報または詳細情報を取得したい...次のようなもの:

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Scanning
Updating archive C:\Docz.7z
Updating hello.txt
Adding   examplenew.txt
Deleting/Ignoring documentdeleted.txt
Everything is Ok
4
VSP

7Zipには「余分な冗長性」オプションはありません。ただし、 7Zip SDK を使用して、ライブラリの周りに単純なラッパーを記述して、必要な処理を実行することもできます。

5
Alex P.

なぜあなたはそれが必要なのでしょうか?つまり、-uフラグは、アーカイブの更新をきめ細かく制御できるように正確に設計されています。

"C:\Program Files\7-Zip\7z.exe" -ms=off -uq0 u "C:\Docz.7z" "C:\Documentsx\*"

Docz.7zスイッチでアーカイブを作成した場合は、-ms=offのファイルの追加と削除が更新されます(そうしないと、ファイルを削除できません)。 C:\Documentsx\にあるものとアーカイブにあるものを比較する必要がある場合は、Alex P.が言ったようにラッパーを作成するか、比較したいものを使用してスクリプトを作成する必要があります。 C:\Documentsx\内のファイルのリストと7z l Docz.7zの出力の間。

たとえば、Linuxでコマンドラインを使用すると(スクリプトに変換できます):

7z l Docz.7z | cut -c54-80 | sed -n -E '/---/,/---/p' | sed '/---/d' | sort > Docz.list
ls Documents/* | sort > Documents.list
diff Docz.list Documents.list

Linuxを使用していないことは知っていますが、そのbashスクリプトを独自の基礎として使用できます。

しかし、背景とあなたが達成しようとしていることについてもう少し教えていただけますか?間違ったパスを選択した可能性があります...

3
user183734