拡張子を .zi_ から .zip へ変更し、ZIP 形式のファイルを解凍する


自分で使用するために、以下の記事のバッチファイルを書きなおしました。

 拡張子 .zi や .zi_ を .zip にするバッチファイルをつくってみた

2021-02-22.bat
@echo off

set SELF=%~n0
set HELP=Usage: %SELF% FILE

setlocal
  set SOURCE=
  set TARGET=

  if "%~1" == "" (
    echo %HELP% >&2
    exit /b 1
  )
  if not exist "%~1" (
    echo %SELF%: file not found >&2
    exit /b 1
  )

  :: Outlook Message Attachments folder
  :: e.g. %LOCALAPPDATA%\Microsoft\Windows\INetCache\Content.Outlook\[0-9A-Z]{8}
  set SOURCE=%~dp1
  set SOURCE=%SOURCE:~0,-1%
  set f=%~n1
  set e=%~x1

  if not "%e%" == ".zi_" (
    echo %SELF%: file extension not match >&2
    exit /b 1
  )

  if not defined "%TARGET%" (
    set TARGET=%USERPROFILE%\Desktop
  )

  copy "%SOURCE%\%f%%e%" "%TARGET%\%f%.zip" > NUL || (
    echo %SELF%: failed to copy file >&2
    exit /b 1
  )

  if not exist "%TARGET%\%f%.zip" (
    echo %SELF%: file not found >&2
    exit /b 1
  )

  tar -xf "%TARGET%\%f%.zip" || (
    echo %SELF%: failed to extract file >&2
    exit /b 1
  )

  exit /b 0
endlocal