|
本帖最后由 yelangpp 于 2019-10-14 18:44 编辑
原始CMD:
@Echo Off
Echo.
Echo 三分区启动U盘制作脚本 --改自独剑作品
Echo ====================================
Echo.
rem 变量说明: %d123%—磁盘编号 %pabc%—盘符
rem 中间文件说明 list1.txt-磁盘列表文件,用于获取U盘磁盘编号
rem 中间文件说明 list2.txt-分区列表文件,用于获取分区编号盘符类型
rem 检查 管理员权限...
%1 mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&& exit
rem 设置当前目录为脚本所在目录
cd /d %~dp0
echo 可移动磁盘列表
pa\pa.exe /list /usb
rem 获取磁盘编号,多个U盘时选择最后一个。
pa\pa.exe /list /usb /out:list1.txt
echo.
Set d123=
for %%j in (1 2 3 4 5 6 7 8 9 10 11 12) DO (find /i "%%j |" list1.txt>nul&&SET d123=%%j)
if not defined d123 echo 找不到U盘,无法制作自动退出!!!!&&del list1.txt /q&&pause&&goto EX
del list1.txt /q
echo 默认选择磁盘%d123%,其所有分区列表
pa\pa.exe /list:%d123%
echo.
pa\pa.exe /list:%d123% /out:list2.txt
find /i "未分配空间" list2.txt>nul &&echo 有未分配空间,脚本不适用将退出 &&del list2.txt /q&&pause&&goto EX
find /i "1 |" list2.txt>nul &&echo U盘不止一个分区,脚本不适用将退出 &&del list2.txt /q&&pause&&goto EX
rem find /i "FAT16" list2.txt>nul &&echo 有FAT16分区,脚本不适用将退出 &&del list2.txt /q&&pause&&goto EX
rem find /i "FAT32" list2.txt>nul &&echo 有FAT32分区,脚本不适用将退出 &&del list2.txt /q&&pause&&goto EX
rem 获取U盘分区盘符,多个盘符时选择最前盘符
Set pabc=
for %%i in (Z Y X W U T S R Q P O N M L K J I H G F E D C) DO (find /i "%%i:" list2.txt>nul&&SET pabc=%%i)
if not defined pabc echo 找不到U盘盘符,无法制作自动退出&&del list2.txt /q&&pause&&goto EX
del list2.txt /q
echo.
echo 磁盘%d123%将被制作成三分区启动U盘
echo 要取消制作请关闭此窗口
echo 要继续制作请按任意键...
pause>nul
rem 强制卸载盘符并再重新分配盘符,解决U盘占用,以增强制作的可靠性
pa\pa.exe /hd:%d123% /setletter:0 /letter:*
pa\pa.exe /hd:%d123% /setletter:0 /letter:%pabc%
echo.
echo 创建并格式化右端的efi区,30M,fat16,4k对齐,不激活,不设置隐藏属性,设置卷标为efi
pa\pa.exe /hd:%d123% /resize:0 /reduce-right:30
pa\pa.exe /hd:%d123% /cre /pri /size:auto /end /fs:fat16 /align /label:EFI
echo.
echo 从U盘左边无损分出30M未分配空间用于UD区,4k对齐
pa\pa.exe /hd:%d123% /resize:0 /reduce-left:30 /align
echo.
echo 把左边分出的8M空间非强格成UD区,指定UD主分区为8M
echo.
ud\fbinst.exe (hd%d123%) format --primary 8M
echo.
echo 这个时候,三分区已经形成!
set src=%~dp0
set src1=%src%esp
echo.
echo 正在把启动文件写入EFI区,请稍候……
pa\pa.exe /hd:%d123% /whide:1 /src:%src1%
set src2=%src%ud\ud.fba
echo.
echo 正在把ud.fba写入UD区,请稍候……
ud\fbinst.exe (hd%d123%) load %src2%
echo.
echo 三分区启动U盘制作完成!
pause
goto EX
:EX
几乎每段命令都有注释,应该好懂。
“三分区”启动肯定需要分区,要不就只做单分区启动,那也就跳出本篇范畴了。 |
|