MEMO blog

主に自分用のメモです

7zを使って*.tar.gzを解凍するbat

7zを使って*.tar.gzを解凍するbat

@echo off
pushd %~dp0

rem ---------------------------------------------
rem 7zを使って*.tar.gzを解凍する
rem "Syntax: this_bat <input_dir> <output_dir>"
rem -%1 ... input_dir: 入力ディレクトリ
rem -%2 ... output_dir: 出力ディレクトリ
rem ---------------------------------------------

rem Check args
IF "%1"=="" ( goto END_ARG_ERROR )
IF "%2"=="" ( goto END_ARG_ERROR )


rem 7zにパスが通っていないときにここで指定しておく
set command_7z="path_7z"


rem 入出力ディレクトリの設定とチェック
set input_dir=%~1
IF NOT EXIST %input_dir% (
    echo input_directory does not exist...
    goto END_ARG_ERROR
)
set output_dir=%~2
IF NOT EXIST %output_dir% (
    echo output_directory does not exist...
    goto END_ARG_ERROR
)


rem 7zを使用して%input_dir%にある*.tar.gzをすべて%input_dir%へ展開
pushd %input_dir%
echo Unzipping archives...
for %%i in (*.tar.gz) do (
    %command_7z% x %%i -so | %command_7z% x -si -ttar -o%output_dir%
)


echo Done...
goto END_STD


rem 正常終了------------------------------------
:END_STD
    pause
    exit /b

rem 異常終了(引数異常)------------------------------------
:END_ARG_ERROR
    echo "Syntax: this_bat <input_dir> <output_dir>"
    pause
    exit /b