|
grub4dos自己下载吧,下面这个是硬盘安装grub4dos的批处理,昨晚刚写的,出错求告知,grldr,grldr.mbr,menu.lst必须在同一个文件夹,最好都放在C盘根目录
下面代码复制到txt里面,后缀名改成bat就能用
@echo off
REM 获得管理员权限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges请求允许...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /b
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
:Pre
setlocal enabledelayedexpansion
if "%1" equ "" goto NormalMode
if "%1" neq "" if exist %dp1%menu.lst (if exist %dp1%grldr (if exist %dp1%grldr.mbr goto SPMode2))
goto SPMode1
REM 普通模式
:NormalMode
for %%i in (C:,D:,E:,F:,G:,H:,I:,J:,K:,L:,M:,N:,O:,P:,Q:,R:,S:,T:,U:,V:,W:,X:,Y:,Z:,A:,B:) do (if exist %%i\menu.lst (if exist %%i\grldr (if exist %%i\grldr.mbr set p=%%i& set g4d=\grldr.mbr& goto Ready)))
goto Ready
pause
REM 特殊模式1(执行出错拖拽到窗口)
:SPMode1
cls
echo 文件不全,请确保三个文件在同一根目录下.
echo 所需要三个文件为menu.lst grldr grldr.mbr
echo
echo
echo [若不在根目录,可拖拽三个文件其中之一到批处理文件上方.]
echo [或者拖拽三个文件其中之一到当前窗口(三个文件务必在同一文件夹)]
set /p file=
goto Pre
REM 特殊模式2(拖拽到文件上方执行)
:SPMode2
echo %~dp1>%temp%\g4dSpecialMode.txt
for /f "tokens=2 delims=:" %%a in (%temp%\g4dSpecialMode.txt) do (set p=%~d1& set g4d=%%agrldr.mbr)
:Ready
bcdedit /create /d "Grub4dos" /application bootsector>%temp%\g4d.txt
for /f "tokens=2 delims= " %%a in (%temp%\g4d.txt) do (set guid=%%a)
echo guid=%guid%
echo p=%p%
echo g4d=%g4d%
bcdedit /set %guid% device partition=%p%>%temp%/Result.txt
bcdedit /set %guid% path %g4d%>>%temp%/Result.txt
bcdedit /displayorder %guid% /addlast>>%temp%/Result.txt
bcdedit /timeout 30>>%temp%/Result.txt
:Result
:Reboot
echo 按y重启,其余退出
set /p z=[是否继续?]
if "%z%" equ "y" (shutdown -r -t 0)
REM 变量说明:guid是标识符,p是安装文件所在盘符,g4d为grldr.mbr所在的不含盘符的全路径
REM 支持三文件不在根目录,但三文件要在同一文件夹 |
|