@echo off title %~nx0 set start_dir=%cd% REM ##################################### REM ### syslinux.exe のチェック REM ##################################### REM check syslinux.exe if exist syslinux\win32\syslinux.exe ( set "syslinux_exe=ok" path=%cd%\syslinux\win32;%path% ) for /l %%x in (0,1,9) do ( if exist syslinux-3.8%%x\win32\syslinux.exe ( set "syslinux_exe=ok" path=%cd%\syslinux-3.7%%x\win32;%path% )) for /l %%x in (0,1,9) do ( if exist syslinux-3.8%%x\win32\syslinux.exe ( set "syslinux_exe=ok" path=%cd%\syslinux-3.8%%x\win32;%path% )) if defined syslinux_exe GOTO START if not exist syslinux.exe ( echo: echo: echo: echo syslinux.exe がありませぬぞ! echo ここに syslinux.exe おいてくりゃれ! echo: GOTO END ) REM ##################################### REM ### START REM ##################################### :START set select= cls echo: echo ************************************************************* echo ***** ***** echo * === * Damn Small Linux 4.4 ライブCDの部屋さん版 === * echo * === * 起動フロッピーの作成のはじまりはじまり〜 === * echo ***** ***** echo * === !フロッピーをAドライブにセットしてクダサイ === * echo * === !CDありますか or ファイルは展開済みでナリか? === * echo ***** ***** echo * === 99. * 終了する * === * echo ************************************************************* echo: echo *** 何かキーを押すと開始ツカマツリまする!*** echo *** !中断なら 99 を打つべし *** echo: set /p select= [Y,99] : if "%select%"=="99" GOTO END if not exist A: GOTO NONFD set nakami=nasi dir /a /b A:\ >nul 2>nul && set nakami=ari if "%nakami%"=="nasi" GOTO ASK_DIR cls :ASK_FD set select= cls echo: echo: echo -------------------------------------------------------------- echo -------------------------------------------------------------- echo フロッピーにファイルがあります。このフロッピーでほんまにおk? echo -------------------------------------------------------------- echo -------------------------------------------------------------- echo: set /p select= [y,n] : echo: if /i "%select%"=="y" GOTO ASK_DIR if /i "%select%"=="n" GOTO START GOTO ASK_FD REM ##################################### REM ### ディレクトリの指定 REM ##################################### :ASK_DIR set source=%start_dir% cls echo: echo ============================================================== echo *** カーネルのあるディレクトリ(boot\isolinux など)を指定 *** echo ============================================================== echo: echo *** 無指定だとここのディレクトリが検索対象です *** echo *** 無指定ならそのまま ENTER を押してください。 *** echo *** !!! エクスプローラからドラッグすると簡単です !!! *** echo: echo *** 中断するには 99 を入力 *** echo: set /p source= ディレクトリ : for /f "usebackq delims=" %%I in ('%source%') do set source=%%~I if /i "%source%"=="99" GOTO CANCEL echo: if not exist "%source%\" echo !!! ディレクトリがありません && GOTO WAIT GOTO SEARCH :WAIT echo: echo *** 何かキーを押すと戻ります *** echo: pause >nul GOTO ASK_DIR REM ##################################### REM ### ファイルを検索 REM ##################################### :SEARCH echo: echo 対象ディレクトリは %source% echo: echo *** 何かキーを押すと続行します *** pause >nul pushd "%source%" cls echo: echo -------------------------------------------------------------- echo ファイルを検索します echo -------------------------------------------------------------- echo: set File_01=boot.msg set File_02=f2 set File_03=f3 set File_04=isolinux.cfg set File_05=linux24 set File_06=logo.16 set File_07=minirt24.gz for /f "usebackq tokens=2 delims==" %%x in (`set File_`) do ( if not exist %%x ( GOTO NOFILES )) REM ##################################### REM ### FDへコピー REM ##################################### :COPY_FD cls set sentaku= echo: echo ============================================================== echo *** ファイルが確認できたのでFDへコピーを開始します *** echo ============================================================== echo: echo *** フロッピーをAドライブにセットしてください *** echo *** Enterを押してたもれ *** echo *** * 中断するには 99 を入力 *** set /p sentaku= [Y,99] : if /i "%sentaku%"=="99" GOTO CANCEL echo ============================================================== echo *** 空き容量は大丈夫かなぁ.... *** echo ============================================================== set sentaku= echo: echo *** 1,367,040 バイト 必要なのですけど.... *** set nakami=nasi dir /a /b A:\ >nul 2>nul && set nakami=ari for /f "usebackq tokens=3-4" %%x in (`dir a:\ 2^>nul`) do (set "aki=%%x %%y") echo: if "%nakami%"=="nasi" ( echo * Aドライブは、まっさらみたいダYO! ) else ( echo * Aドライブの空き容量は %aki% なりだYO! ) echo: echo *** 上書き再試行ならそのままでおk.... *** echo: echo *** * 続行は Enter を押してたもれ *** echo *** * 戻るには N を入力 *** echo *** * 中断するには 99 を入力 *** set /p sentaku= [Y,n,99] : if /i "%sentaku%"=="n" GOTO COPY_FD if "%sentaku%"=="99" GOTO CANCEL cls for /f "usebackq tokens=2 delims==" %%x in (`set File_`) do ( echo: echo * %%x を FDへコピー copy /y %%x A:\ >nul if ERRORLEVEL 1 ( echo: echo ! なんかエラーです...orz echo: GOTO ERROR )) echo: echo * isolinux.cfg を syslinux.cfgへコピー copy /y A:\isolinux.cfg A:\syslinux.cfg if ERRORLEVEL 1 ( echo: echo ! なんかエラーです...orz echo: GOTO ERROR ) REM ##################################### REM ### SYSLINUXのインストール REM ##################################### cls popd echo: echo: echo ============================================================== echo *** SYSLINUXのインストールを行います *** echo ============================================================== echo: echo: syslinux.exe A: if not ERRORLEVEL 1 GOTO DONE syslinux.exe -sf A: pause if ERRORLEVEL 1 GOTO ERROR :NONFD cls echo: echo -------------------------------------------------------------- echo: echo !! フロッピーがありません? !! echo: echo -------------------------------------------------------------- echo: echo *** 何かキーを押すと戻ります *** pause >nul GOTO START :DONE cls echo: echo: echo ============================================================== echo: echo 正常に終了しました....おつかり...。 echo: echo ============================================================== GOTO END :ERROR echo: echo ============================================================== echo !!! エラーが出たようです OTL... !!! echo ============================================================== GOTO END :NOFILES echo: echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo: echo !!! ファイルが足りないです... !!! echo: for /f "usebackq tokens=2 delims==" %%x in (`set File_`) do ( if not exist %%x ( echo * %%x がありませぬ )) echo: echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo: echo *** 何かキーを押すと戻ります *** pause >nul GOTO ASK_DIR :CANCEL echo: echo: echo *** キャンセルしますた! *** echo: GOTO END :END echo: echo: echo *** 何かキーを押すと閉じます *** echo: pause >nul