稲枝の押入れ

いなえが適当なことを書いては、しまっておく場所

DXライブラリのアーカイブ化を楽にしたい

以前DXライブラリのパスワード付きアーカイブ機能を楽に使いたかったので適当なソフト作ったとかいう記事を書いたけど、そんな大層なことしなくてもよくね?ということに気づいたので手順をメモ。

簡単に言うとバッチファイルを作成して、それを叩けばいい状態にするだけ。

まずメモ帳を開いて

@echo off

::リソースフォルダの名前を指定
set ARCHIVED_NAME=image

::アーカイブファイルの拡張子の指定
set EXPANSION_NAME=ncs

::パスワード
set ARCHIVE_PASSWORD=password

:wait_delete_input

echo.

::入力受付
set /P INPUT_STR="%ARCHIVED_NAME%.dxa 及び %ARCHIVED_NAME%.%EXPANSION_NAME%を削除します。よろしいですか?(y/n)"

echo.

::入力に応じて分岐する
if "%INPUT_STR%"=="y" (
    echo 削除します
    del %ARCHIVED_NAME%.%EXPANSION_NAME%
    del %ARCHIVED_NAME%.dxa
) else if "%INPUT_STR%"=="n" (
    ::noの場合は何もしない
    echo アーカイブファイルを削除せずにアーカイブファイルを作成します
) else (
    echo エラー : y もしくは n を入力してください
    goto wait_delete_input
)

echo.

::パスワードを指定してアーカイブを呼び出す
echo アーカイブ化します
call C:\DxLib_VC\Tool\DXArchive\DxaEncode.exe -K:%ARCHIVE_PASSWORD% ./%ARCHIVED_NAME%

:wait_archive_input

echo.

::入力受付
set /P INPUT_STR="拡張子を.dxaから.%EXPANSION_NAME%に変更します。よろしいですか?(y/n)"

::入力に応じて分岐する
if "%INPUT_STR%"=="y" (
    ::拡張子がデフォルトでは.dxaなので、指定した拡張子に変更する
    echo 拡張子を指定したものに変更します
    ren *.dxa *.%EXPANSION_NAME% 
) else if "%INPUT_STR%"=="n" (
    rem noの場合は何もしない
) else (
    echo エラー : y もしくは n を入力してください
    goto wait_archive_input
)

echo.

::終了待ち
echo 終了しました
pause

exit /b 0

と書いてアーカイブ化したいリソースフォルダと同じ階層に置く。ちなみにimageアーカイブ化したいリソースフォルダの名前(本当はパスなので適当に変えても良い)に、ncsは自分のアーカイブファイルの拡張子に、passwordは使用したいパスワードに置換する。

そしてpass_archive.batとか適当な名前で保存する。

これで自動アーカイブバッチが作成されるので、アーカイブ化したいときにpass_archive.batをダブルクリックする。これだけ。

このbatを使う場合は、パスワードがバッチファイル内に平文で記載されているため、これを間違えて一緒に同梱するようなことはしないように。セキュリティ的にアレなので、普段使っているパスワードを流用なんかはしないほうがいいですね。

バッチファイルにそこそこコメントは書いておいたので適当に弄ってください。入力を待たない版は以下

@echo off

::リソースフォルダの名前を指定
set ARCHIVED_NAME=image

::アーカイブファイルの拡張子の指定
set EXPANSION_NAME=ncs

::パスワード
set ARCHIVE_PASSWORD=password

echo 削除します
del %ARCHIVED_NAME%.%EXPANSION_NAME%
del %ARCHIVED_NAME%.dxa

echo.

::パスワードを指定してアーカイブを呼び出す
echo アーカイブ化します
call C:\DxLib_VC\Tool\DXArchive\DxaEncode.exe -K:%ARCHIVE_PASSWORD% ./%ARCHIVED_NAME%

echo.

::拡張子がデフォルトでは.dxaなので、指定した拡張子に変更する
echo 拡張子を指定したものに変更します
ren *.dxa *.%EXPANSION_NAME% 

echo.

::終了待ち
echo 終了しました
pause

exit /b 0