以前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