@echo off
cd /d %~dp0
cls

REM ##################################################################
REM 把几个变量初始化为none
set PTNUM=none
set HDNUM=none
set ISOFILE=none
set AGREE=none
set i=none
set j=none
set m=none
set RAWN=1
set FATN=1

REM ##################################################################
REM 获得U盘盘符和镜像文件的文件名
for /f %%i in ('boot\fbinstp.exe --hdlist %%P --USB') do set PTNUM=%%i
if %PTNUM% == none goto DiskNotFound

for /f %%j in ('boot\fbinstp.exe --hdlist %%N --USB') do set HDNUM=%%j
if %HDNUM% == none goto DiskNotFound

for /f %%m in ('dir *.iso /on /b') do set ISOFILE=%%m
if %ISOFILE% == none goto ISONotFound
 
REM echo "PNUM=%PTNUM%"
REM echo "HDNUM=%HDNUM%"
REM echo "ISOFILE=%ISOFILE%"


REM ##################################################################
REM 开始制作过程
echo. 
echo =======================================================
echo * 我们将把 %PTNUM% 盘格式化成U盘启动盘！
echo * 制作U盘启动盘之前请备份好自己的数据。
echo =======================================================
echo.
set /p AGREE=确认请输入大写的YES,其它键退出:

if "%AGREE%"=="YES" goto formatraw else do(
goto DisAgree
)

:formatraw
REM ###################################################################
REM 格式化U盘
echo.
echo  1) 开始格式化U盘%PTNUM%(可能会有点慢)

REM U盘还原，并检查还原是否成功。最多尝试5次
set VAL=none
boot\fbinstp.exe (hd%HDNUM%)  format --raw --force
set VAL=%ERRORLEVEL%

if "%VAL%"=="0" goto formatfat32 else do(
  echo %RAWN%
  if "%RAWN%"=="5" (
   echo "无法还原U盘，程序终止"
   exit /b
  )
  set /a RAWN+=1
  goto formatraw
)



:formatfat32
REM U盘格式化，并检查格式化是否成功。最多尝试5次
set VAL=none
boot\fbinstp.exe (hd%HDNUM%)  format --fat32 --force
set VAL=%ERRORLEVEL%

if "%VAL%"=="0" goto mkbootu else do(
  echo %FATN%
  if "%FATN%"=="5" (
   echo "无法格式化U盘，程序终止"
   exit /b
  )
  set /a FATN+=1
  goto formatfat32
)


:mkbootu
REM ###################################################################
REM 拷贝启动文件
echo.
echo  2) 开始拷贝启动文件到U盘%PTNUM%
boot\fbinstp.exe --usbrestart > nul
ping 127.0.0.1 -n 2 > nul
md %PTNUM%\boot
xcopy /e "boot" "%PTNUM%\boot" > nul

REM ###################################################################
echo.
echo  3) 开始写引导到U盘%PTNUM%
%PTNUM%\boot\syslinux\syslinux.exe -ma -d %PTNUM%\boot\syslinux %PTNUM%

REM ###################################################################
echo.
echo  4) 开始拷贝海蜘蛛路由镜像ISO到U盘%PTNUM%(可能会有点慢)
xcopy "%ISOFILE%" "%PTNUM%" > nul
boot\fbinstp.exe --usbdisable > nul
echo.
echo.

echo ^>^>^>制作U盘启动盘成功^<^<^<

echo.
echo.
echo 请将U盘插到目标主机上，并设置成U盘启动。
echo 按任意键退出。
pause > nul
exit /b


:DisAgree
echo. 
echo =======================================================
echo 制作U盘启动盘到%PTNUM%已取消！
echo 如果系统上有多个U盘（或USB移动硬盘等），请将其它U盘拨掉。
goto failed

:DiskNotFound
echo. 
echo =======================================================
echo 错误：没有检测到U盘！请插入U盘后再运行此脚本。
echo 如果是vista或者以上系统，请以管理员身份运行此脚本。
goto failed

:ISONotFound
echo. 
echo =======================================================
echo 没有找到光盘镜像文件，请将ISO光盘镜像拷贝到当前目录。
goto failed


:failed
echo. 
echo =======================================================
echo 制作U盘启动盘终止。
pause > nul
exit /b



