- 帖子
- 47
- 积分
- 53
- 技术
- 1
- 捐助
- 0
- 注册时间
- 2011-4-8
|
4楼
发表于 2012-2-27 14:41
| 只看该作者
@Echo Off
mode con cols=66 lines=26
Set Prog=晨枫U盘启动工具v3.0
Title %Prog% - 安装介绍
Cls
Echo.
Echo.
Echo 欢迎您使用%Prog%
Echo.
Echo.
Echo 安装前建议在下一个界面上按“H”打开安装教程阅读后再进行操作.
Echo.
Echo 以减少安装与使用过程中可能出现的问题. (有问题请详阅帮助说明.)
Echo.
Echo.
Echo 如遇到解决不了的问题,欢迎浏览我们网站寻求帮助或加入QQ群讨论!
Echo.
Echo.
Echo 珠海晨枫工作室:Http://MyFeng.COM
Echo.
Echo.
Echo.
Echo. →按任意键进入主界面 ...
Pause >Nul
:_Start
mode con cols=64 lines=26
CLS
COLOR 0F
Title %Prog% - 安装功能选项
Echo.
Echo ╭──────────────────╮
Echo │ │
Echo ╭──┤ %Prog% ├──╮
Echo │ │ │ │
Echo │ └──────────────────┘ │
Echo │ │
Echo │ 请选择功能选项: │
Echo │ │
Echo │ [1] U 盘标准安装(推荐) │
Echo │ [2] U 盘双隐藏分区安装 │
Echo │ [3] 移动硬盘多分区安装 │
Echo │ [4] 添加引导镜像或软件 │
Echo │ [5] 恢复磁盘初始状态 │
Echo │ [H] 程序安装使用教程 │
Echo │ [F] 运行FbinstTool │
Echo │ [Q] 退出安装程序 │
Echo │ │
Echo ├────────────────────────┤
Echo │ 为防数据丢失,安装前请先备份好您的重要资料 │
Echo ├────────────────────────┤
Echo │ 珠海晨枫工作室 Http://MyFeng.COM │
Echo ╰────────────────────────╯
Echo.
CHOICE /C 12345HFQ /N /M 请选择要进行的操作(1/2/3/4/5/H/F/Q):
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 GOTO _StIns
IF ERRORLEVEL 2 IF NOT ERRORLEVEL 3 GOTO _HidePart
IF ERRORLEVEL 3 IF NOT ERRORLEVEL 4 GOTO _MDisk
IF ERRORLEVEL 4 IF NOT ERRORLEVEL 5 GOTO _AddFile
IF ERRORLEVEL 5 IF NOT ERRORLEVEL 6 GOTO _Reset
IF ERRORLEVEL 6 IF NOT ERRORLEVEL 7 GOTO _Help
IF ERRORLEVEL 7 IF NOT ERRORLEVEL 8 GOTO _FBTool
IF ERRORLEVEL 8 GOTO _exit
:_StIns
Set aName=U盘标准安装(推荐)
Call :_HD
Call :_InsMode
:_Part1
Set a=%USZ%
Set b=%ExSize%
Set /a StSZ=a-b
Cls
Echo.
Echo === %aName%安装信息确认 ===
Echo.
Echo 引导模式:%bMode% %yBPB% %YNChs%
Echo.
Echo UD区:%ExSize%M 可见区:%StSZ%M
Echo -----------------------------------------------------------
Call :_StStart
Call :_LoadFile
Goto _exit
:_HidePart
Set aName=U盘双隐藏分区安装
Call :_HD
Call :_InsMode
:_HPR
Set /a NewSz=%USZ%-%ExSize%
Title %Prog% - 设定第2隐藏分区大小
Cls
Echo.
Echo 磁盘:%HD% 容量:%USZ%MB %UnSG% UD区:%ExSize%M
Echo -------------------------------------------------
Echo.
ECHO 设定第2隐藏分区大小,直接输入数值无需带单位!
Echo.
Echo.
Set aHide=
Set /p aHide= →请输入第2隐藏分区大小(剩余:%NewSz%M):
If "%aHide%"=="" Goto _HPR
echo %aHide% | findstr "[a-z]" >nul && Cls &&Echo.&&Echo 错误:只输入数值,不能输入字母!&&Echo.&&Echo 按任意键返回重新输入!&&pause>nul&&goto _HPR
echo %aHide% | findstr "[`~!@#$*()-_=+\{}'*;:,./?]" >nul && Cls &&Echo.&&Echo 错误:只输入数值,不能输入符号!&&Echo.&&Echo 按任意键返回重新输入!&&pause>nul&&goto _HPR
If "%aHide%"=="%NewSz%" (Cls & Echo. & Echo 设定值不得使用完剩余容量,请重新设置!& pause >nul & Goto _HPR)
if %aHide% gtr %NewSz% (Cls & Echo. & Echo 设定值大于剩余容量,请重新设置!& pause >nul & Goto _HPR)
Set /a alHide=%NewSz%-%aHide%
if %alHide% lss 32 (Cls & Echo. & Echo 剩余空间已小于32,请重新设置!& pause >nul & Goto _HPR)
Set a=%USZ%
Set b=%aHide%
Set c=%ExSize%
Set /a HPSZ=a-b-c
Set aSize=--size %HPSZ%M
Cls
Echo.
Echo === %aName%安装信息确认 ===
Echo.
Echo 引导模式:%bMode% %yBPB% %YNChs%
Echo.
Echo UD区:%ExSize%M 第2隐藏分区:%aHide%M 可见分区:%HPSZ%M
Echo -----------------------------------------------------------
Call :_StStart
Cls
Echo.
Echo →正在创建第2隐藏分区,请稍候 ...
Gdisk32 %Gdst% /Y /CRE /PRI /FOR /Q /V:Hide >nul 2>nul
Call :_LoadFile
Goto _exit
:_MDisk
Set aName=移动硬盘多分区安装
Call :_HD
Title %Prog% - 选择移动硬盘分区数
Cls
Echo.
Echo 已选择安装磁盘:%HD% 容量:%USZ%MB %UnSG%
Echo -------------------------------------------------
Echo.
ECHO. ╭────────────╮
ECHO ╭──┤ 移动硬盘分区选择 ├──╮
ECHO │ └────────────┘ │
ECHO │ │
ECHO │ [1] . 分成一个分区 │
ECHO │ │
ECHO │ [2] . 分成二个分区 │
ECHO │ │
ECHO │ [3] . 分成三个分区 │
ECHO │ │
ECHO │ [4] . 分成四个分区 │
ECHO │ │
ECHO │ [5] . 分成五个分区 │
ECHO │ │
ECHO ╰──────────────────╯
Echo.
CHOICE /C 12345 /N /M 请选择所需的分区数量(1/2/3/4/5):
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 Set PNum=1
IF ERRORLEVEL 2 IF NOT ERRORLEVEL 3 Set PNum=2
IF ERRORLEVEL 3 IF NOT ERRORLEVEL 4 Set PNum=3
IF ERRORLEVEL 4 IF NOT ERRORLEVEL 5 Set PNum=4
IF ERRORLEVEL 5 IF NOT ERRORLEVEL 6 Set PNum=5
Call :_InsMode
If "%PNum%"=="1" Goto _Part1
Set P1=
Set P2=
Set P3=
Set P4=
Set P5=
Set Num=1
Set /a NewSz=%USZ%-%ExSize%
:_Pn
Title %Prog% - 设定第%Num%分区大小
Cls
Echo.
Echo 磁盘:%HD% 容量:%USZ%MB %UnSG% UD区:%ExSize%M
Echo --------------------------------------------------
Echo.
Echo 设定第%Num%/%PNum%分区大小,直接输入数值无需带单位!
if not "%P1%" == "" (Set a1=第1区:%P1%)
if not "%P2%" == "" (Set a2=第2区:%P2%)
if not "%P3%" == "" (Set a3=第3区:%P3%)
if not "%P4%" == "" (Set a4=第4区:%P4%)
if not "%P5%" == "" (Set a5=第5区:%P5%)
if not "%P1%" == "" (Echo.&Echo %a1% %a2% %a3% %a4% %a5%) ELSE (Echo.)
Echo.
Set input=
Set /p input= →请输入第%Num%分区大小(剩余:%NewSz%M):
If "%input%"=="" Goto _PN
echo %input% | findstr "[a-z]" >nul && Cls &&Echo.&&Echo 错误:只输入数值,不能输入字母!&&Echo.&&Echo 按任意键返回重新输入!&&pause>nul&&goto _Pn
echo %input% | findstr "[`~!@#$*()-_=+\{}'*;:,./?]" >nul && Cls &&Echo.&&Echo 错误:只输入数值,不能输入符号!&&Echo.&&Echo 按任意键返回重新输入!&&pause>nul&&goto _Pn
If "%input%"=="%NewSz%" (Cls & Echo. & Echo 设定值不得使用完剩余容量,请重新设置!& pause >nul & Goto _Pn)
if %input% lss 32 (Cls & Echo. & Echo 设定值不能小于32,请重新设置!& pause >nul & Goto _Pn)
if %input% gtr %NewSz% (Cls & Echo. & Echo 设定值大于剩余容量,请重新设置!& pause >nul & Goto _Pn)
Set /a ainput=%NewSz%-%input%
if %ainput% lss 32 (Cls & Echo. & Echo 剩余空间已小于32,请重新设置!& pause >nul & Goto _Pn)
Set P%Num%=%input%
if not "%P1%" == "" (Set a=%P1%)
if not "%P2%" == "" (Set b=%P2%)
if not "%P3%" == "" (Set c=%P3%)
if not "%P4%" == "" (Set d=%P4%)
if not "%P5%" == "" (Set e=%P5%)
Set /a NewSz=%NewSz%-a-b-c-d-e
Set /a Num=%Num%+1
If not "%Num%"=="%PNum%" Goto _Pn
:_PnOK
Title %Prog% - 最后分区大小
Set P%Num%=%NewSz%
if not "%P1%" == "" (Set a1=第1区:%P1%)
if not "%P2%" == "" (Set a2=第2区:%P2%)
if not "%P3%" == "" (Set a3=第3区:%P3%)
if not "%P4%" == "" (Set a4=第4区:%P4%)
if not "%P5%" == "" (Set a5=第5区:%P5%)
Cls
Echo.
Echo 磁盘:%HD% 容量:%USZ%MB %UnSG% UD区:%ExSize%M
Echo --------------------------------------------------------------
if not "%P1%" == "" (Echo.&Echo %a1% %a2% %a3% %a4% %a5%) ELSE (Echo.)
Echo.
Echo 剩余所有空间划分给第%Num%/%PNum%分区,约:%NewSz%M
Echo.
Echo.
Echo →按任意键确认到下一步!
pause >nul
Cls
Echo.
Echo === %aName%安装信息确认 ===
Echo.
Echo 引导模式:%bMode% %yBPB% %YNChs% UD区:%ExSize%M
Echo.
Echo %a1% %a2% %a3% %a4% %a5%
Echo --------------------------------------------------------------
Set Num=1
Set aSize=--size %P1%M
Call :_StStart
Cls
Echo.
Echo →正在创建扩展分区,请稍候 ...
Gdisk32 %Gdst% /Y /CRE /EXT >nul 2>nul
:_PnRs
Title %Prog% - 创建第%Num%分区
Cls
Echo.
Echo →正在创建第%Num%/%PNum%分区,请稍候 ...
Call,Set PaSz=%%P%Num%%%
Gdisk32 %Gdst% /Y /CRE /LOG /SZ:%PaSz% /FOR /Q /V:RD_VOL%Num% >nul 2>nul
Set /a Num=%Num%+1
If not "%Num%"=="%PNum%" Goto _PnRs
:_PnF
Title %Prog% - 创建第%Num%分区
Cls
Echo.
Echo →正在创建第%Num%/%PNum%分区,请稍候 ...
Gdisk32 %Gdst% /Y /CRE /LOG /FOR /Q /V:RD_VOL%Num% >nul 2>nul
Call :_LoadFile
Goto _exit
Goto :EOF
:_HD
Title %Prog% - 选择操作磁盘
Cls
Echo ┌───────────────┐
Echo │ 功能选择: %aName% │
Echo └───────────────┘
Echo.
ECHO 本机磁盘列表:
Echo --------------------------------->%temp%\HDLst.txt
fbinst --list >>%temp%\HDLst.txt
Echo --------------------------------->>%temp%\HDLst.txt
type %temp%\HDLst.txt
for /f "tokens=1 delims=:" %%i in ('findstr /n .* %temp%\HDLst.txt') do set Line=%%i
Set /a Ln=%Line%-3
Echo.
Echo *请根据容量谨慎选择,后面会对所选磁盘进行格式化!
Echo.
Echo.
Set HDNum=
Set /p HDNum= →请输入要操作的磁盘号(0-%Ln%),按回车继续:hd
if "%HDNum%"=="" Goto _HD
echo %HDNum% | findstr "[a-z]" >nul && Cls &&Echo.&&Echo 错误:不能输入字母,只需输入磁盘号即可!&&Echo.&&Echo 按任意键返回重新输入!&&pause>nul&&goto _HD
echo %HDNum% | findstr "[`~!@#$*()-_=+\{}'*;:,./?]" >nul && Cls &&Echo.&&Echo 错误:不能输入符号,只需输入磁盘号即可!&&Echo.&&Echo 按任意键返回重新输入!&&pause>nul&&goto _HD
if %HDNum% gtr %Ln% (Cls & Echo.&Echo 选择的磁盘号不存在,按任意键返回请重新选择!& pause >nul & Goto _HD)
Set HD=(hd%HDNum%)
REM GDISK目标磁盘
Set /a Gdst=%HDNum%+1
REM 取磁盘大小
Set /a SK=%HDNum%+1
for /f "skip=%SK% delims=" %%i in (%temp%\HDLst.txt) do (Echo %%i>%temp%\nLine.txt&Goto _aa)
:_aa
for /f "tokens=2" %%i in (%temp%\nLine.txt) do set UnSize=%%i
for /f "tokens=3" %%i in (%temp%\nLine.txt) do set UnSG=%%i
Set /a USZ=%UnSize%/2048
Goto :EOF
:_InsMode
Title %Prog% - 选择制作模式
Cls
Echo.
Echo 已选择安装磁盘:%HD% 容量:%USZ%MB %UnSG%
Echo -------------------------------------------------
Echo.
ECHO. ╭────────────╮
ECHO ╭──┤ 请选择要制作的模式 ├──╮
ECHO │ └────────────┘ │
ECHO │ │
ECHO │ [1] . USB—HDD—FAT32 │
ECHO │ │
ECHO │ [2] . USB—HDD—FAT16 │
ECHO │ │
ECHO │ [3] . USB—ZIP—FAT32 │
ECHO │ │
ECHO │ [4] . USB—ZIP—FAT16 │
ECHO │ │
ECHO │ [5] . USB—ZIP--FAT16 │
ECHO │ [复制BPB到MBR] │
ECHO │ │
ECHO ╰──────────────────╯
Echo.
CHOICE /C 12345 /N /M 请选择要进行的操作(1/2/3/4/5):
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 GOTO _HDD32
IF ERRORLEVEL 2 IF NOT ERRORLEVEL 3 GOTO _HDD16
IF ERRORLEVEL 3 IF NOT ERRORLEVEL 4 GOTO _ZIP32
IF ERRORLEVEL 4 IF NOT ERRORLEVEL 5 GOTO _ZIP16
IF ERRORLEVEL 5 IF NOT ERRORLEVEL 6 GOTO _ZIP16B
PAUSE
:_HDD32
Set aMode=--fat32
Set bMode=USB-HDD-FAT32
Goto _YnChs
:_HDD16
Set aMode=--fat16
Set bMode=USB-HDD-FAT16
Goto _YnChs
:_ZIP32
Set aMode=--zip --fat32
Set bMode=USB-ZIP-FAT32
Goto _YnChs
:_ZIP16
Set aMode=--zip --fat16
Set bMode=USB-ZIP-FAT16
Goto _YnChs
:_ZIP16B
Set aMode=--zip --fat16
Set bMode=USB-ZIP-FAT16
Set BPB=Y
Goto _YnChs
:_YnChs
Title %Prog% - CHS模式选择
IF /i "%BPB%"=="Y" Set yBPB=复制BPB到MBR
Cls
Echo.
Echo 已选择引导模式:%bMode% %yBPB%
Echo -------------------------------------------------
Echo.
Echo 是否强制使用CHS模式?
Echo.
Echo (用于某些不能自动检测模式的BIOS)
Echo.
Echo.
Set aChs=
Set Choice=
Set /P Choice= →如需强制输入Y然后按回车,直接回车可跳过:
If /I "%Choice%"=="Y" Set aChs=--chs
:_UdSize
Title %Prog% - 自定义UD区大小
IF "%aChs%"=="" (Set YNChs=不强制CHS模式) ELSE (Set YNChs=强制CHS模式)
Cls
Echo.
Echo 已选择%YNChs%
Echo -------------------------------------------------
Echo.
Echo 是否自定义UD区(隐藏区)大小?磁盘容量:%USZ%MB
Echo.
Echo (默认为256M,不得低于此值,无需要请按回车跳过)
Echo.
Echo.
Set Choice=
Set /P Choice= →如需设置直接输入数值,不重设直接按回车:
If "%Choice%"=="" Goto _DeExSize
echo %Choice% | findstr "[a-z]" >nul && Cls &&Echo.&&Echo 错误:只输入数值,不能输入字母!&&Ec3 |
|