ファイル「background.png」を同じディレクトリ内の何百もの .zip ファイルに更新する必要があります。次のコマンドを試しましたが、成功しませんでした。
7z u -r "C:\Users\xxx\Desktop\testzip\*.zip" "C:\Users\xxx\Desktop\testzip\background.png"
「ファイルを開けません」というエラーが表示されます。 開けるでしょうか?
答え1
7-Zip を使用して、すべての zip ファイルに特定のファイルを再帰的に追加する
使う/Fの場合ループと ディレクタースイッチを使用してコマンド/S /B /A-D
を実行し、開始ディレクトリから各 zip ファイルを 1 つずつ再帰的に反復処理し、各アーカイブ ファイルをこのように更新します。
注記: この方法では、7-ジップ -r
更新パラメータで切り替えます。
コマンドライン
FOR /F "TOKENS=*" %A in ('DIR /S /B /A-D "C:\Users\xxx\Desktop\testzip\*.zip"') DO 7z u "%~fA" "C:\Users\xxx\Desktop\testzip\background.png"
バッチスクリプト
注記: 変数の値はSET Src=
、再帰的に zip ファイルを更新するフォルダーのフル パスに設定できます。変数のSET uFile=
値は、zip ファイルを更新するファイル (更新ファイル) のフル パスに設定できます。
@ECHO ON
SET Src=C:\Users\xxx\Desktop\testzip
SET uFile=C:\Users\xxx\Desktop\testzip\background.png
FOR /F "TOKENS=*" %%A in ('DIR /S /B /A-D "%Src%\*.zip"') DO (
7z u "%%~fA" "%uFile%"
)
その他のリソース
- /Fの場合
FOR /?
tokens=x,y,m-n - specifies which tokens from each line are to be passed to the for body for each iteration. This will cause additional variable names to be allocated. The m-n form is a range, specifying the mth through the nth tokens. If the last character in the tokens= string is an asterisk, then an additional variable is allocated and receives the remaining text on the line after the last token parsed.
さらに、FOR 変数参照の置換が強化されました。次のオプションの構文を使用できるようになりました。
%~fI - expands %I to a fully qualified path name
- -u (更新オプション) スイッチ