=======================================================================
現在の構成
=======================================================================
X:.
│ hoge.7z
│ hoge2.7z
│ hoge3.7z
│ foo.zip
│ foo.lzh
│
├─xyz
│ │ xxxx.7z
│ │ yyy.7z
│ │ zzzz.7z
上記のように、Xドライブの中にhoge.7zやfoo.zip等の圧縮ファイルと、xyzというフォルダがあり、更にxyzのフォルダの中にxxxx.7z等圧縮ファイルが格納されているフォルダ構成があります。
このXドライブの配下の7zで圧縮されたファイルのみをzipに再圧縮したいので、windowsのコマンドと7-Zipのコマンドを利用してバッチファイルを作成したいと考えています。
下記のURLを参考にしてバッチファイルを作成したのですが正常に動作しません。
どこを変更したら上手く動作するのでしょうか?
=======================================================================
理想的な実行時の流れ
=======================================================================
1. フォルダの配下にある.7zファイルを検索する
2. 拡張子が.7zのファイルがあった場合、zipに再圧縮する
3. 再圧縮した、元の7.zファイルを削除する
=======================================================================
バッチファイル
=======================================================================
@echo off
set exe="C:\Program Files\7-Zip\7z.exe"
for /R %%i in (*) do (
rem if /I "%%~xi"==".7z" call :再圧縮 %%i
)
cd %~p0
goto :EOF
:再圧縮
echo %1
cd %~p1
%exe% x -o$$temp$$ %1 >> NUL
cd $$temp$$
%exe% a -tzip -mx=9 -m0=lzma2 %~p1%~n1.zip * >> NUL
cd ..
rmdir /S /Q $$temp$$
if exist %~p1%~n1.7z if not "%~x1"==".7z" del /F /Q %1
goto :EOF
=======================================================================
参考にしたサイト
=======================================================================
http://sevenzip.sourceforge.jp/howto/compress-many-files.html
ftp://softbank126018034238.bbtec.net/Upload/BackUp/ArchiverDLL/7-ZIP32/7-zipCMD.txt
http://d.hatena.ne.jp/gurinita/20091221/1261397519
↧