|
5#
楼主 |
发表于 2010-10-12 10:47:09
|
只看该作者
参考x9tian兄弟的代码,我整合了下,基本上可以完成GRUB的一些功能。
1.更改GRLDR名称(也同时更改GRLDR.MBR中的名称)
2.编辑内置GRUB菜单内容(默认MENU.LST),建议先执行1再执行本步2
3.制作GRUB启动背景,原图要求640x480的14色深图片
4.设置MESSAGE相关信息(直接调用x9tian的批处理)
5.创建GRLDR菜单项MD5加密密码
下载地址:http://u.115.com/file/f73e6a5ea5
- @echo off
- set path=%cd%;%path%
- pushd %~dp0
- :top
- set choice=
- mode con cols=70 lines=25
- COLOR 02
- ECHO.
- ECHO ╔──────────────────────────────╗
- ECHO │ │
- ECHO │ 鸿越GRLDR更名和设置工具 │
- ECHO │ 本程序由鸿越软件小布点编写制作 │
- ECHO │ 本程序用于快速更名GRLDR 修改GRLDR内置菜单 │
- ECHO │ 本程序可以自由复制,使用和发布,版权归作者本人所有 │
- ECHO │ QQ:9399100 QQ群号:29946542 E-MAIL:xiaobudian528@sina.com │
- ECHO │ │
- ECHO ╚──────────────────────────2010─㊣╝
- ECHO.
- IF DEFINED TIPS CALL ECHO %TIPS%
- echo -------------------------------------------------------------------
- echo 1.更改GRLDR名称(也同时更改GRLDR.MBR中的名称)
- echo 2.编辑内置GRUB菜单内容(默认MENU.LST),建议先执行1再执行本步2
- echo 3.制作GRUB启动背景,原图要求640x480的14色深图片
- echo 4.设置MESSAGE相关信息(直接调用x9tian的批处理)
- echo 5.创建GRLDR菜单项MD5加密密码
- echo Q.输入英文字母Q退出程序
- echo -------------------------------------------------------------------
- echo.
- set /p choice=请你选择操作的内容并回车(1,2,3,4,5)
- if "%choice%"=="1" goto:1
- if "%choice%"=="2" goto:2
- if "%choice%"=="3" goto:3
- if "%choice%"=="4" goto:4
- if "%choice%"=="5" goto:5
- if /i "%choice%"=="Q" EXIT
- goto:top
- :1
- cls
- :: 对输入的我文件进行判断,非常注意的是如果路径参数带空格,系统会自动添加引号,而没有空格时间则无引号,所以要使用%~1来脱去引号,如是环境变量可使用%temp:"=%脱去(请参考批处理如何从用户传入的参数中去掉引号)
- if not "%~1"=="" set g4d=%~1
- if "%g4d%"=="" (set /p g4d=请拖入或输入GRLDR文件位置,直接回车则使用默认GRLDR:)
- if not defined g4d set g4d=%cd%\grldr
- set g4d=%g4d:"=%
- if not exist "%g4d%" (cls&&echo 你输入路径有错或应把grldr和本工具放在同一文件夹,请更正后再使用本工具&&pause>nul&&exit)
- call:ok "%g4d%"
- goto:numstr
- :ok
- :: 获取变量路径的文件名和路径,可以使用FOR命令更简单For /f "usebackq tokens=*" %%i In ('type %temp%\path') do set "name=%%~nxi"&SET "n=%%~ni"&SET "TP=%%~dpi"
- set strf=%~nx1
- set strp=%~dp1
- goto:eof
- :numstr
- cls
- set /p str=请输入新的文件名称,字符要求全部为小写的任意5个字符:
- :: 对5个字符限制进行检测,并把原始输入保存到strx变量
- if not defined str goto:numstr
- set strx=%str%
- set "str=%str:"= %"
- :next
- if not "%str%"=="" (
- set /a num+=1
- set "str=%str:~1%"
- goto next
- )
- if "%num%" neq "5" goto:numstr
- :: 大小写转化,这里使goto:rar用更为方便的RAR来进行处理
- if exist rar.exe goto:rar
- set str=%strx%
- set str1=abcdefghijklmnopqrstuvwxyz
- set str2=ABCDEFGHIJKLMNOPQRSTUVWXYZ
- for /l %%i in (0,1,25) do (
- call set char1=%%str1:~%%i,1%%
- call set char2=%%str2:~%%i,1%%
- call :change
- )
- call set str=%str%
- goto:str
- :change
- call set "str=%%str:%char1%=%char2%%%"
- goto :eof
- :rar
- :: 利用RAR来转化大小写更加简单方便,获取的结果变量STRX为小写,STR为大写
- copy /y "%g4d%" "%temp%\%strx%">nul
- rar.exe a -r -inul -ep "%temp%\%strx%.rar" "%temp%\%strx%"
- del /q/f "%temp%\%strx%">nul
- rar.exe e -o+ -inul -cu "%temp%\%strx%.rar" "%temp%"
- for /f "delims=" %%i in ('dir /a/b "%temp%\%strx%"') do call set str=%%i
- del /q/f "%temp%\%strx%">nul
- rar.exe x -o+ -inul -cl "%temp%\%strx%.rar" "%temp%"
- for /f "delims=" %%i in ('dir /a/b "%temp%\%strx%"') do call set strx=%%i
- copy /y "%g4d%.mbr" "%temp%\%strx%.mbr">nul
- :str
- :: 也可以使用白杨baiy.cn非常强大的查找和替换工具FR,如fr "%temp%\%str%" -f:GRLDR -t:%str%
- cls
- str.exe "%temp%\%str%" 0 0 /R /ASC:GRLDR /ASC:%str% /A
- str.exe "%temp%\%str%" 0 0 /R /ASC:grldr /ASC:%strx% /A
- str.exe "%temp%\%str%.mbr" 0 0 /R /ASC:GRLDR /ASC:%str% /A
- str.exe "%temp%\%str%.mbr" 0 0 /R /ASC:grldr /ASC:%strx% /A
- copy /y "%temp%\%strx%" "%strp%">nul
- copy /y "%temp%\%strx%.mbr" "%strp%">nul
- del /q/f "%temp%\%strx%.*">nul
- set ng4d=%strp%\%strx%
- SET TIPS=已经成功更名为%strx%和%strx%.mbr,你可以选择其他操作
- goto:top
- :2
- cls
- if exist "%ng4d%" goto:strmenu
- set /p ng4d=请拖入或输入要编辑菜单的GRLDR文件,直接回车则使用默认GRLDR:)
- if not defined ng4d set ng4d=%cd%\grldr
- set ng4d=%ng4d:"=%
- :strmenu
- cls
- set ng4dm=
- grubmenu.exe export "%ng4d%" "%temp%\menu.lst"
- if "%errorlevel%"=="1" (set TIPS=你要编辑的文件不是标准的GRUB文件,请重新来过&&GOTO:TOP)
- CLS
- ECHO -----------------------------------------
- ECHO 1.直接编辑内置菜单并导入输入Y并回车
- ECHO 2.否则请拖入或输入自有GRUB菜单并回车
- ECHO 3.如果直接回车则使用默认菜单MENU.LST
- ECHO.
- ECHO 如果仅查看菜单或返回主菜单请输入Q并回车
- ECHO -----------------------------------------
- ECHO 注:菜单编码将会自动转为UTF8格式
- ECHO.
- set /p ng4dm=请输入Y或者拖入GRUB菜单并回车(Q返回):
- if /i "%ng4dm%"=="Q" (grubmenu.exe print "%ng4d%"&&ECHO 任意键返回主菜单&&PAUSE>NUL&&GOTO:TOP)
- if /i "%ng4dm%"=="Y" set ng4dm=%temp%\menu.lst
- if not defined ng4dm set ng4dm=%cd%\menu.lst
- set ng4dm=%ng4dm:"=%
- ECHO %ng4dm%
- PAUSE
- cls
- echo 请编辑内置菜单,完成后退出记事本编辑器
- start /wait notepad.exe "%ng4dm%"
- if exist "%ng4dm%" A2U.exe "%ng4dm%" "%temp%\menuUTF8.lst"
- if exist "%temp%\menuUTF8.lst" grubmenu.exe import "%ng4d%" "%ng4dm%"
- SET TIPS=已经成功导入GRLDR菜单,你可再次操作以查看操作结果
- del /q/f "%temp%\menu*.lst"
- goto:top
- :3
- ::本程序借鉴了x9tian的代码,详细参考[url]http://bbs.wuyou.net/forum.php?mod=viewthread&tid=160280[/url]
- ::如果要手工制作的话可以先把图片使用XNVIEW转化为14色深XPM的
- cls
- echo 本程序可把各种位图转化成GRUB背景图XPM格式
- echo 请把要转换的图片拖到本窗口来,或者直接输入一个路径
- set/p m=
- if not exist %m% goto:3
- for %%i in (%m%) do cv "%%~i" -resize 640x480! -colors 14 "%%~dpni.xpm">nul 2>nul&&gzip -9 "%%~dpni.xpm">nul 2>nul&&cls&&set xpm=%%~ni.xpm.gz
- SET TIPS=已经成功制作启动背景图,保存为原文件目录下的"%xpm%"
- goto:top
- :4
- :: 直接调用x9tian兄的MSG批处理工具,只是把退出代码改成了GOTO:TOP,MSG相关工具放到bin目录中
- cls
- call msg.bat
- SET TIPS=已经重新生成了%mc%文件,原文件备份为%mc%.bak
- goto:top
- :5
- cls
- set /p md5p=请输入要加密GRUB菜单的密码,默认为9399100:
- if "%md5p%"=="" set md5p=9399100
- echo %md5p%>"%temp%\temp.txt"
- MD5.EXE "%temp%\temp.txt" "%temp%\%md5p%.txt"
- PING 127.0.0.1 -n 3 >NUL
- START "" "%temp%\%md5p%.txt"
- SET TIPS=已经成功制作菜单密码,请记住你的密码%md5p%
- goto:top
复制代码 |
|