@echo off title %~nx0 REM check split.exe if exist split.exe set splitexe=ok if exist .\UnxUtils\usr\local\wbin\split.exe set splitexe=ok REM check zip.exe if exist zip.exe set zipexe=ok if exist .\UnxUtils\usr\local\wbin\zip.exe set zipexe=ok if "%splitexe%"=="" GOTO NOSPLIT if "%zipexe%"=="" GOTO NOZIP echo: echo ************************************************************** echo ************************************************************** echo ** ** echo **=== LiveCDブート用 カーネル分割FD を作成します ===** echo ** ** echo **=== zip.exe と split.exe が必要です! ===** echo ** ** echo **=== LiveCD(または展開済ファイル)とFDを準備シテクダサイ=== ** echo ** ** echo ************************************************************** echo ************************************************************** echo: echo 続行しますか? 中断は xボタン or Ctrl-C echo: echo *** 何かキーを押すと続行します *** pause >nul set path=%cd%\UnxUtils\usr\local\wbin;%cd%;%path% :ASK set target=%cd% cls echo: echo ============================================================== echo *** カーネルのあるディレクトリを指定? *** echo ============================================================== echo: echo *** 無指定だとここのディレクトリが検索対象です *** echo *** 無指定ならそのまま ENTER を押してください。 *** echo *** !!! エクスプローラからドラッグすると簡単です !!! *** echo: echo *** 中断するには qq を入力 *** echo: set /p target= ディレクトリ : echo: set target=%target:"=% if /i "%target%"=="qq" GOTO CANCEL echo: if not exist "%target%\" echo !!! ディレクトリがありません if not exist "%target%\" GOTO WAIT GOTO SEARCH :WAIT echo: echo *** 何かキーを押すと続行します *** pause >nul GOTO ASK :SEARCH echo: echo: echo 検索対象ディレクトリは %target% echo: pushd "%target%" cls echo: echo -------------------------------------------------------------- echo kernel を検索します echo -------------------------------------------------------------- echo: for %%x in (altker64,altker32,rescuecd,vmlinuz1,bzImage1,bzImage,vmlinuz,kernel,linux) do if exist %%x set kernel=%%x if "%kernel%"=="" GOTO NOKERNEL echo kernel を発見しますた ... filename = %kernel% echo: echo -------------------------------------------------------------- echo initrd を検索します echo -------------------------------------------------------------- echo: for %%x in (initram,initram.igz,initrd1.img,initrfs.gz,miniroot,miniroot.gz,miniroot.img,minird,minird.img,minird.gz,minirt,minirt.img,minirt.gz,initrd,initrd.gz,initrd.img) do if exist %%x set initrd=%%x if "%initrd%"=="" GOTO NOINITRD echo: echo initrd を発見しますた ... filename = %initrd% echo: echo *** kernel と initrd のファイル名を確認シテクダサイ *** echo: echo *** 何かキーを押すと続行します *** echo: pause >nul popd echo: echo ============================================================== echo *** 一時保存するディレクトリ名を指定してクダサイ? *** echo ============================================================== echo: echo *** ここにサブディレクトリを作ります。名前はなんでも *** echo *** 無指定だとここの SPLIT ディレクトリに一時保存します *** echo: set /p dirname= ディレクトリ名 : echo: if "%dirname%"=="" set dirname=SPLIT if not exist %dirname% mkdir %dirname% set makedir=%cd%\%dirname% if exist "%makedir%\ldfdraa" set ldfdraa=ariari if "%ldfdraa%"=="" GOTO MAKEZIP echo: echo ************************************************************** echo: echo ! %makedir% ディレクトリには echo ! ldfdraa ファイルが既にあります。 echo ! 削除していいのでせうか? echo: echo ************************************************************** echo: echo 続行しますか? 中断は xボタン or Ctrl-C echo: echo *** 何かキーを押すと続行します *** echo: pause >nul echo: del "%makedir%\ldfdr*" del "%makedir%\ldfd.zip" :MAKEZIP echo: echo -------------------------------------------------------------- echo ZIP書庫ファイルを作成.... echo -------------------------------------------------------------- echo: pushd "%makedir%" REM copy "%target%\%kernel%" >nul REM copy "%target%\%initrd%" >nul zip -j ldfd.zip "%target%\%kernel%" "%target%\%initrd%" if not "%errorlevel%"=="0" GOTO ERROR echo: echo -------------------------------------------------------------- echo ZIP書庫ファイルを分割 echo -------------------------------------------------------------- echo: split --verbose -b 1423k ldfd.zip ldfdr if not "%errorlevel%"=="0" GOTO ERROR copy nul end.txt >nul echo: echo -------------------------------------------------------------- dir /a /b echo -------------------------------------------------------------- echo: echo *** 何かキーを押すと続行します *** echo: pause >nul echo: :SELECT cls echo: echo ************************************************************** echo * * echo * === 分割ファイルを %makedir% に作成しました。 === * echo * * echo * === FDへのコピーも今スグやっちゃいますか? === * echo * * echo * === *** 中断するには qq を入力 *** === * echo * * echo ************************************************************** echo: set /p select= 選択 [y , qq ] : echo: if "%select%"=="" GOTO SELECT if /i "%select%"=="qq" GOTO NOFDCOPY if /i "%select%"=="y" GOTO FDCOPY GOTO SELECT :FDCOPY for /f %%x in ('dir ldfdr* ^| findstr 個のファイル') do set fdcount=%%x cls echo: echo ************************************************************** echo * * echo * === FDへのコピーを始めます。ファイル数を確認して、 === * echo * * echo * === フォーマット済FDを準備シテクダサイ === * echo * * echo * === %fdcount% 枚必要です === * echo * * echo ************************************************************** echo -------------------------------------------------------------- dir ldfdr* | findstr 個のファイル echo -------------------------------------------------------------- echo: echo *** 1 枚目のフロッピーをセットシテクダサイ *** echo: echo ***「x 枚目の フロッピーをセットシテ Enterオシテクダサイ」 *** echo *** の表示が出たら順番にFDを入替ます *** echo: echo *** 何かキーを押すと続行します *** echo: echo 続行しますか? 中断は xボタン or Ctrl-C echo: pause >nul echo -------------------------------------------------------------- echo FDの順番を忘れないように、付箋とか貼っときませう(笑) echo -------------------------------------------------------------- echo: set /a fdc=1 REM for /f %%x in ('dir /b ldfdra*') do set filename=%%x && call :COPY_FD for %%x in (ldfdra*) do set filename=%%x && call :COPY_FD :ENDTXT if not "%errorlevel%"=="0" GOTO ERROR echo: cls echo: echo ============================================================== echo: echo コピーは終了しました。 echo: echo 最終のFDに end.txt の作成が必要なので echo 最終のFDがセットされているか確認してください。 echo: echo ============================================================== echo: echo *** 何かキーを押すと続行します *** echo: pause >nul echo -------------------------------------------------------------- echo end.txt作成.... echo -------------------------------------------------------------- copy nul A:\end.txt echo: GOTO DONE REM ##################################### REM ### ERROR REM ##################################### :NOKERNEL echo: echo ============================================================== echo !!! カーネルが見つかりませんでした... !!! echo ============================================================== echo: echo *** 何かキーを押すと戻ります *** echo: pause >nul GOTO ASK :NOINITRD echo: echo ============================================================== echo !!! initrd が見つかりませんでした... !!! echo ============================================================== echo: echo *** 何かキーを押すと戻ります *** echo: pause >nul GOTO ASK :ERROR echo: echo ============================================================== echo !!! エラーが出たようです... !!! echo ============================================================== GOTO END :NOSPLIT echo: echo !!! split.exe がありません !!! GOTO NOZIP :NOZIP if "%zipexe%"=="ok" GOTO NOFILES echo: echo !!! zip.exe がありません !!! GOTO NOFILES :NOFILES echo: echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo: echo !!! ファイルが足りないのて中断しますです... !!! echo: echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo: GOTO END REM ##################################### REM ### DONE REM ##################################### :NOFDCOPY cls echo: echo: echo: echo ============================================================== echo: echo * 分割ファイルを echo * %makedir% に作成しました。 echo: echo 終了しました....おつかり...。 echo: echo ============================================================== GOTO END :DONE cls echo: echo: echo: echo ============================================================== echo: echo * 分割ファイルを echo * %makedir% に作成しました。 echo: echo 分割ファイルを FDへのコピーしました。 if not exist A:\end.txt echo !!! end.txt のコピーに失敗しました。 echo: echo 終了しました....おつかり...。 echo: echo ============================================================== GOTO END :CANCEL echo: echo キャンセルしますた... GOTO END :END echo: echo *** 何かキーを押すと閉じます *** pause >nul GOTO :EOF REM ##################################### REM ### CALL COPY_FD REM ##################################### :COPY_FD copy %filename% A:\ >nul echo: if not ERRORLEVEL 1 echo %filename% をコピーしました... echo: if "%fdc%"=="%fdcount%" exit /b if not %fdc%==%fdcount% set /a fdc=fdc+1 echo -------------------------------------------------------------- echo %fdc% 枚目の フロッピーをセットシテ Enterオシテクダサイ... echo -------------------------------------------------------------- pause >nul