7-Zipを使用して大きな.rarアーカイブ(1.9TB)からデータを正常に抽出しましたが、アーカイブを削除したいと思います。ただし、そうする前に、保存したいパス名と、最も重要なことに、対応する7-ZipファイルマネージャーのCRC列にリストされているCRC値 =。
私が知っているこれを行う唯一の方法は、次のコマンド7z l -slt <archive.Zip>
を使用してcmd.exeを使用することです。ただし、この方法は私の目的にはあまり効率的ではありません。一つには、コマンドプロンプトの出力ウィンドウのサイズが制限されています。バッファサイズ(おそらく32766まで)を調整できることは知っていますが、アーカイブには100万を超えるファイルがあります...しかし、さらに問題なのは、このメソッドの出力が次のような形式であるという事実です。私の知る限り、変更することはできず、次のようになります。
Path = -
Folder = -
Size = -
Packed Size = -
Modified = -
Created =
Accessed =
Attributes = -
Encrypted = -
Solid = -
Commented = -
Split Before = -
Split After = -
CRC = -
Host OS = -
Method = -
Version = -
Volume Index = -
私が探しているのは、次のようなファイルごとの出力です。
<CRC> <pathname>
例えば:
60CD248A *Folder1\text1.txt
61CD248A *Folder1\Folder2\text1.txt
62CD248A *Folder1\Folder2\text2.txt
あなたの時間と助けに感謝します。
1行のコマンドコードを使用して、コマンドライン出力からCRC行のみを取得できます。
7z l -slt archive.Zip >>"%tmp%\output.txt && type "%tmp%\output.txt"|findstr /b CRC | clip && del /q /f "%tmp%\output.txt"
このコマンドはクリップボード/ Crtl + Cにすべての行の内容を入れますCRC - .....
7zコマンドから。
ファイルに保存する場合:
7z l -slt archive.Zip >>"%tmp%\output.txt && type "%tmp%\output.txt"|findstr /b CRC >>"c:\my_folder\my_save_output.txt" && del /q /f "%tmp%\output.txt"
Forループ直接保存CRC-文字列
for /f tokens^=2*^delims^=^ ^-^ %i in ('7z l -slt archive.Zip^|findstr /b CRC')do @echo/%i>>"c:\my_folder\my_save_output.txt"
for /f tokens^=^2*^delims^=^=^ %i in ('7za l -slt archive.Zip ^| find /i "crc"')do @echo/%i>>"c:\my_folder\my_save_output.txt"
Obs。:1)間に2つのスペースがあります^=^=
および%i
:
delims^=^= ←→ %i ---> delims^=^=^ %i
Obs。:2)同じことがPathにも当てはまりますが、[〜#〜] crc [〜#〜]をパス。
Obs。:3)使用されているポータブルバージョンの実行可能ファイルは7za.exeです。別の名前を付けている可能性があります。