@echo off
cls
REM #####################################
REM ### BCDWファイルのチェック
REM #####################################
path=%cd%;%path%
pushd ..\
set source=%cd%
set "output=..\"
for /f %%I in ("%output%") do set output=%%~fI

for %%x in (bcdw,BCDW) do dir /ad/b | findstr %%x >nul && set "boot_dir=%%x"

for %%x in (loader.bin,LOADER.BIN) do dir /a-d/b bcdw\ | findstr %%x >nul && set "boot_image=%%x"

if not defined boot_dir GOTO NOFILE
if not defined boot_image GOTO NOFILE

REM #####################################
REM ### mkisofsファイルのチェック
REM #####################################
set CHECK_01=mkisofs.exe
set CHECK_02=tools\mkisofs.exe
set CHECK_03=cygwin1.dll
set CHECK_04=tools\cygwin1.dll

for %%x in (mkisofs.exe,tools\mkisofs.exe) do (
if exist %%x set "mkisofs_exe=ok")
if not defined mkisofs_exe GOTO NOFILE

for %%x in (cygwin1.dll,tools\cygwin1.dll) do (
if exist %%x set "cygwin1=ok")
if not defined cygwin1 GOTO NOFILE

echo:
echo        ==============================================================
echo        ===                                                        ===
echo        ===     *   BCDW.iso と云う名の「isoイメージ」を！ *       ===
echo        ===     *   作成するであります！                   *       ===
echo        ===    *   ! 同名ファイルがあればリネームしときます   *    ===
echo        ===                                                        ===
echo        ===     *   何かキーを押すと容量を計算するであります！     ===
echo        ===     *   ！計算などいらぬのなら 88 をいれるのじゃ       ===
echo        ===     *   ！中断なら 99 と押してたもれ                   ===
set /p select=      [Y,88,99]   : 
if "%select%"=="99" GOTO END
if "%select%"=="88" GOTO SKIP
echo        ===       ......  計算中にござる！ しばし待たれよ！ .....  ===
echo                           * 中断するには Ctrl-C *
echo        ===                                                        ===
for /f "usebackq tokens=3-4 delims= " %%x in (`dir /a/s ^| findstr 個のファイル`) do set "size=%%x %%y"
echo        ===     * 恐れながら容量は %size%でござった
:SKIP
echo        ==============================================================
echo:
echo                *** 何かキーを押すと開始ツカマツリまする！*** 
echo                ***    ！中断なら 99 を所望したい         ***
echo:
set /p select=      [Y,99]   : 
if "%select%"=="99" GOTO END
echo:

REM #####################################
REM ### 既存ファイルのリネーム
REM #####################################
:BACKNAME
set boot=%boot_dir%/%boot_image%
set iso=%output%BCDW.iso
if not exist "%iso%" GOTO MAKEISO

for /f "delims=" %%I in ("%iso%") do set bt=%%~tI
set bt=%bt: =%
set bt=%bt:~-13,2%%bt:~-10,2%%bt:~-7,2%_%bt:~-5,2%%bt:~-2,2%
for /f "delims=" %%I in ("%iso%") do set backname=%%~nI_%bt%%%~xI
ren "%iso%" %backname%
if ERRORLEVEL 1 GOTO ERROR

REM #####################################
REM ### mkisofs 実行
REM #####################################
:MAKEISO

mkisofs -iso-level 4 -r -hide TRANS.TBL -T -b "%boot%" -c boot.cat -no-emul-boot -boot-load-size 4 -V "BCDW" -o "%iso%" "%source%"

if ERRORLEVEL 1 GOTO ERROR

REM #####################################
REM ### DONE
REM #####################################
:DONE
echo:
echo:
echo                ***    うむ、正常に終了したようじゃの巻 ！      ***
echo                         = %iso%
echo:
echo:
echo                      *** これにて一件（以下略）... *** 
echo:
echo                      *** 何かキーを押すと閉じます  *** 
pause >nul
GOTO :EOF

REM #####################################
REM ### NOFILE
REM #####################################
:NOFILE
echo:
for %%x in (mkisofs.exe,tools\mkisofs.exe) do (
if exist %%x set "mkisofs_exe=ok")
if not defined mkisofs_exe (
echo                !!! mkisofs.exe がないでござる          ...orz
echo                  * tools ディレクトリに置いてくだされ...
)

for %%x in (cygwin1.dll,tools\cygwin1.dll) do (
if exist %%x set "cygwin1=ok")
if not defined cygwin1 (
echo                !!! cygwin1.dll がないでござる          ...orz
echo                  * tools ディレクトリに置いてくだされ...
)

:NOBCDW
echo:
if not defined boot_dir (
echo                !!! BCDW ディレクトリがありませぬぞ          ...orz
)
if not defined boot_image (
echo                !!! BCDW\loader.bin はどこじゃー             ...orz
GOTO ERROR
)

REM #####################################
REM ### ERROR
REM #####################################
:ERROR
echo:
echo:
echo                     ...なんかエラー出たでござるよ orz...
echo:
echo                         ! もはやこれまでぢゃ... *** 
echo:
echo                      *** 何かキーを押すと閉じます  *** 
pause >nul
