質問: windows上で.tarおよび.tar.gzの展開を行っています. 展開のためのツールとしては7-zipを使用しています. 展開を行いたいフォルダ,ファイルのディレクトリ構造が複雑なのですが 一気に展開を行う方法はありますでしょうか. 親フォルダ →001 →002 →003 まず親フォルダ(圧縮なし)の下にフォルダ(圧縮なし)が複数存在します 001 →001_1.tar.gz →001_2.tar.gz →001_3.tar.gz 次にフォルダ(圧縮なし)の下に.tar.gzが複数存在します. 001_1.tar.gz(.tar及び.gzを展開後) →001_1_1.tar →001_1_2.tar →001_1_3.tar それらを展開するとその下にさらに.tarが複数存在します. これらを展開できればすべての解凍が終わりになります. 001_1_1.tar(展開後) →hoge1 →hoge2 →hoge3 親フォルダ以下のフォルダ,ファイルを一気に展開したいと考えています. ツールは7-zipでなくても問題ないので,よいものがあれば紹介してください. よろしくお願いします.
回答: 私は7za v920(7-zipのコマンドライン版)を使っています。 http://osdn.jp/projects/sfnet_sevenzip/downloads/7-Zip/9.20/7za920.zip/ ちょっと強引なやり方ですが 7zaを叩くバッチファイルはいかがでしょうか。 適当な場所に以下の内容を abc.bat などの名前で保存して、 **親フォルダの場所へカレントディレクトリを移動して**実行して下さい。 なお 7za.exe が C:\app\7za920\7za.exe にあるものとして書いています。 適宜変更して下さい。 **親フォルダの配下に直接展開します。**ご注意ください。 ``` FOR /F "delims=" %%D IN ('dir /ad /b') DO ( CD "%%D" FOR /F "delims=" %%G IN ('dir *.tar.gz /b') DO ( C:\app\7za920\7za.exe x "%%G" ) FOR /F "delims=" %%T IN ('dir *.tar /b') DO ( C:\app\7za920\7za.exe x -o* "%%T" ) FOR /F "delims=" %%E IN ('dir /ad /b') DO ( CD "%%E" FOR /F "delims=" %%G IN ('dir *.tar.gz /b') DO ( C:\app\7za920\7za.exe x "%%G" ) FOR /F "delims=" %%T IN ('dir *.tar /b') DO ( C:\app\7za920\7za.exe x -o* "%%T" ) CD .. ) CD .. ) ```