
このタイトルについて調査したところ、次の CMD ファイルの回答が示されました。
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
FOR %%X in (*.rar *.zip) DO (
"C:\Program Files\7-zip\7z.exe" x %%X
)
popd
)
cmd ファイルは、ある程度まではうまく機能します。ただし、「ZIP」拡張子を持つファイルが見つかるたびに次のメッセージが表示され、次の質問が表示されます。
Would you like to replace the existing file:
Path xxxxxx
Size xxxx
Modified: XXXXXXX
with the file from the archive:
Path: xxxx
Size: xxxxx
? Y<es> \ N<o> \ A<lways> \ S<kip all> \A<u>to rename all \ <Q>uit
入力を待つ間、そこで停止します。ただし、ファイルが解凍されるたびに確認を求められます。上記のコマンド ファイルを変更して、?
見つかったかどうかを確認し、応答 cmd ファイルを呼び出して「Y」を出力してから終了するようにします。これにより、元のコマンド ファイルに戻り、見つかった「zip」を含む次のファイルを処理します。
正しい方向に進んでいるかどうかわかりませんが、助けていただければ幸いです。どのプログラムがテキストを出力しているのかわかりません?
。Windows 7 ですか、それとも 7-zip ですか?
答え1
どのプログラムが「?」とテキストを出力しているのか分かりません
そうです7z.exe
。
使用する正しいスイッチは-aoa
(プロンプトなしで既存のすべてのファイルを上書きする) です。
例:
"C:\Program Files\7-zip\7z.exe" x %%X -aoa
-ao (上書きモード) スイッチ
抽出中に上書きモードを指定して、ディスク上に既に存在するファイルを上書きします。
Syntax -ao[a | s | t | u ] Switch Description -aoa Overwrite All existing files without prompt. -aos Skip extracting of existing files. -aou aUto rename extracting file (for example, name.txt will be renamed to name_1.txt). -aot auto rename existing file (for example, name.txt will be renamed to name_1.txt).
答え2
プロンプトを表示するのは7-zipです。-y
スイッチfor は7z.exe
あなたが望むことを行います:
すべての上書きクエリは抑制され、アーカイブと同じファイル名を持つディスク上のファイルは上書きされます。
ドキュメントの例では、-y
に指定されたパスの後に配置する必要があることが示されています7z.exe
。