
在 7zip 命令列選項中,是否有一些參數可以使 7z 輸出從存檔中忽略/刪除的檔案? (該選項忽略的檔案-uq0
)
呼叫範例:
"C:\Program Files\7-Zip\7z.exe" u "C:\Docz.7z" -uq0 "C:\Documentsx\*"
7zip 詳細:
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
如果新增或取代存檔,則會顯示“正在壓縮 hello.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
答案1
7zip 沒有「額外詳細」選項。但你可以使用7zip SDK並圍繞庫編寫一個簡單的包裝器來執行您想要的操作。
答案2
為什麼你需要那個?我的意思是,該-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
7z 有一個詳細選項“-bbX”,其中 X 是 [0..3],最大詳細程度是“-bb3”,然後是“-slt”(顯示技術資訊)。至少Linux版本,但我想Windows版本也有這個?儘管到目前為止這還不如 Linux 的「xz」和「-vvv」那麼冗長。