x9tian 发表于 2010-2-17 09:21:53

GRUB封装启动 相关批处理

一楼制作GRUB 和 linux的标准启动光盘印像 ISO二楼: 编缉GRUB的内置菜单,三楼:制作GRUB启动菜单合格的背景图:xpm;xpm.gz


@echo off&title GRUB4DOS启动光盘制作 BY x9tian&setlocal enabledelayedexpansion
path %~dp0;%path%
echo.&echo.本批处理目标是:生成一个符合GRUB4DOS 启动的光盘印像文件(*.iso)
echo.&echo.请按如下步骤进行操作:
echo.新建一个文件夹 (可任意分区任意名,但不能含空格) 把您要制作启动光盘的文件全部放到这个目录&echo.&echo.完成以上步骤后按任意键继续;&pause>nul&echo.&color a&set/p wj=把您新建的目录拖放到本窗口===^>
echo.&echo.把引导文件grldr(可任意分区任意名,但不能含空格)拖放到本窗口==^>
set/p yd=如果引导在%wj%目录,只需输入文件名!
xcopy /h/r/y "%yd%"%wj%\&set v=%date:-=%&set v=!v:~0,-4!&set v=!v!_%time%
for %%a in (set b=%yd:\= %) do set b=%%a
for%%a in (set k=%wj:\= %) do set n=%%a
for %%a in (%wj%) do set lj=%%~dpa
mkisofs-v -V "%v%"-R -b %b% -hide boot.catalog -hide-joliet boot.catalog -no-emul-boot -boot-load-size 4 -o %lj%%n%.iso %wj%
echo.&echo.&echo.如无错误提示, %lj%%n%.iso制作完成!稍后退出并打开ISO文件所在目录&&ping 127.1 -w 80000>nul 2>nul&&start "" "%lj%"&del %0

[ 本帖最后由 x9tian 于 2010-2-17 10:22 编辑 ]

yanglin 发表于 2010-3-13 22:45:43

回复 #2 x9tian 的帖子

老大的
grub内置菜单编缉器有些问题!!!

无法实用哦 好像是变量 设定出错了!!!

我自己 在自己本来以前 p大那个GRUBMENU 基础上 +上你变量设定(到现在我才知道啊 我很菜吧??)

我自己制作了 3个吧 一个用 bat转exe 做成了个 单文件

一个用 rar做的 自释放 单文件 (区别就是一个有图标和对窗口设定 一个没有吧呵呵呵 ) 最后就是 批处理源码来了


我上传附件:

2010.11.10更新增强版本1.0.0.3版本
做了很久了 忘记上传给大家用了就算11.10的吧
跟之前相比 添加 标题名修改 见截图演示
添加 ASNI 与 UTF-8 编码 转码提示 感谢haiou327 将啊呆老大
的单向 增强为双向转换 编码
haiou327 增强版工具地址:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=170053



2010.10.08更新增强版本1.0.0.2版本


2010.10.05更新增强版本1.0.0.1版本


2010.03.14更新增强版本1.0.0.0版本



具体看截图:


3.15
今天下载了 这个 GRUB启动背景图片制作

工具使用后发现 如果是 带有空格路径的图片 老大的 批处理就不能使用
我就修正了 只是在 待转换 转换的路径 各自 给他们 加上 ""    解决问题

我上传打包成 rar自解压附件上来 呵呵



[ 本帖最后由 yanglin 于 2010-11-19 16:27 编辑 ]

x9tian 发表于 2010-2-17 09:35:24

grub内置菜单编缉器

@Echo off&Set "Pro= GRUB4DOS内置菜单编辑器 "&PUSHD %~dp0
title= %Pro%----主菜单 byx9tian
Set L1=      ╭══════════════════╮
Set L2=      ║                  ║
Set L3=   ╭══┤%Pro%---操作菜单 ├══╮
Set L4=   ║  ║                  ║  ║
Set L5=   ║  ╰══════════════════╯  ║
Set L6=   ║                        ║
Set L7=   ╟════════════════════════╢
Set L8=   ║无忧启动论坛bbs.wuyou.net       BYx9tian   ║
Set L9=   ╰────────────────────────╯
Set L0=      ╟────────────────────────╢
set"l16=%L1%&echo.%L2%&echo.%L3%&echo.%L4%&echo.%L5%&echo.%L6%"&set "lg=%L6%&echo.%L0%"&set "lo=%L7%&echo.%L8%&echo.%L9%&echo."
:MM
cls&COLOR 1F&echo.(输入相应路径) OR (把要编缉的grldr(grub.exe)拖放到本窗口)==^>然后回车.....% &set/p var0=
for %%i in (%var0%) do set "name=%%~nxi"&SET "n=%%~ni"&SET "TP=%%~dpi"
:MENU
CLS&title%Pro%----操作菜单 byx9tian&color 2f &echo.&echo.%l16%
if /i "%name%"=="grldr"goto :grldr
if /i "%name%"=="grub.exe"goto :grub

::为了防止别人什么东西都往上面拖,硬性规定 grldr 和grldr.exe 其它名的哪怕是合格的也拒之门外

cls&color 5f&echo.&echo.&echo.( ̄▽ ̄)σ()^))=凸&echo.&echo.&echo.由于你操作的不是 (grub.exe) or (grldr) 本程序对你竖了中指.╮( ̄﹏ ̄)╭&for /l %%a in (1,1,50000) do echo.>nul
echo.虽然我是程序但作者赋于了我免忽悠的权利...&echo.&echo.任意键回主菜单...&pause>nul
for /l %%a in (1,1,2) doset/p=.\(╯-╰)/ 我对你竖了中指你看到了吗?
goto mm

::下面两个过程可以合成一个, 写在两个只是为了显示美观
:grldr
Echo    ║   当前操作文件为=^>"%name%"             ║
Echo %L6%
Echo    ║ 显示%name%内置菜单相关信息            ║
Echo    ║ 显示%name%内置菜单内容                     ║
Echo    ║ 导出%name%内置菜单                         ║
Echo    ║ 导入 %name%菜单内置(%name%同目录下menu.lst) ║
goto :cz
:grub
Echo    ║   当前操作文件为=^>"%name%"          ║
Echo %L6%
Echo    ║ 显示%name%内置菜单相关信息            ║
Echo    ║ 显示%name%内置菜单内容                  ║
Echo    ║ 导出%name%内置菜单                      ║
Echo    ║ 导入%n%内置菜单(%name%同目录下menu.lst)║
goto :cz
:cz
Echo    ║ 返回主菜单               退出程序  ║
echo.%lg%
Echo    ║【注: 如果导入的 menu.lst大于4K,超出部分将忽略】║
echo.%lo%
Set Choice=
Set /P Choice=   请选择要进行的操作 (1/2/3/4/Q/E) ,然后按回车:
CLS

If Not '%Choice%'=='' SET Choice=%Choice:~0,1%
If /I '%Choice%'=='1' GOTO 1_
If /I '%Choice%'=='2' GOTO 2_
If /I '%Choice%'=='3' GOTO 3_
If /I '%Choice%'=='4' GOTO 4_
If /I '%Choice%'=='q' GOTO MM
If /I '%Choice%'=='e'del /a/f/q %0
Goto MM

:1_
%~dp0grubmenu info "%var0%"
Echo 任意键返回主菜单.
PAUSE >NUL
Goto MENU
:2_
%~dp0grubmenu print "%var0%"
Echo 任意键返回主菜单.
PAUSE >NUL
Goto MENU
:3_
%~dp0grubmenu export "%var0%" "%TP%menu.lst"
echo. 导出%TP%menu.lst 任意键返回主菜单.
Echo 任意键返回主菜单.
PAUSE >NUL
Goto MENU
:4_
%~dp0grubmenu import %var0%%TP%menu.lst
echo.如果无出错提示,说明LST文件已经写入
echo.请按任意键查看写入的内容............
PAUSE >NUL
Goto 2_

[ 本帖最后由 x9tian 于 2010-2-18 18:21 编辑 ]

x9tian 发表于 2010-2-17 09:54:53

GRUB启动背景图片制作

XPM 背图 简单的批处理,懒得贴出来,下成品吧,里面包含了, conver.exe 改名了(cv.exe免去与微软系统带的垃圾货"conver.exe重名) ;gzip.exe; 还有一个批处理

附件自动解压到系统临时文件夹运行


相比XPM 背图,GRUB4DOS 还支持一种高清的那就是MESSAGE。 新手不要以为它看着只是一个特殊格式的图片文件,其实它是一种压缩包的形式,它里面包含了,图片,字体和配置文件.
(看着比XPM图舒服,用着也觉得蛮爽) 那么想不想自己做一个呢?

找到要修改的MESSAGE ,通个以下的批处理,能完成你所要进行的所有修改, 不须要你懂多少知识,只需要细心,按提示一步步来,你将得到一个自己DIY 的MESSAGE

以下批处理是, GRUB 背图 \ 字体\配置, 之 MESSAGE

注意思里面用到了FINDSTR 如果是在PE下运行,请确认有findstr.exe


MESSAGE 配置@echo off&COLOR %RANDOM:~-1%f&cls&TITLE GRUB for message制作--主菜单 BY x9tian& PATH=%~DP0BIN;%PATH%
if not exist "%~dp0bin\cpio.exe"   echo. cpio.exe 不存在 @_@&&ping -n 3 127.1>nul 2>&1&exit
echo.请选择:&echo. 修改一个己存在的message文件&echo. 制作 message文件 PS:新手建议试都别试&echo. 制作 字体文件 for MESSAGE&echo.&echo.&set/pxz=请选....
echo.%xz%|find "1" >nul 2>&1&&goto :1_ ||echo.%xz%|find "2">nul 2>&1&&goto :2_||echo.%xz%|find "3">nul 2>&1&&goto :zt 3 ||cls&echo.输入错误!! 返回主菜单ing&ping -n 2 127.1 >nul 2>&1&%0
:2_
title 制作 message文件
setlocal enabledelayedexpansion
cls&echo.请把message的文件组件全放到一个文件夹里面&echo.&echo.把这个放置message组件的文件夹拖放到本窗口---^>^<-------
set/p msg=
if not defined msg (%0 )else pushd %msg%
call :ztpz
:ys
dir /a-d/b|more>txt.lst&cpio -o <txt.lst> ..\message&cd..\>nul&echo.如无出错则生成完成,文件将生成在===!cd!\message&echo.正准备打开MESSAGE所在的文件夹....&&ping -n 5 127.1>nul&&start /w "" "!cd!\"
exit
:1_
title 修改 message文件
cls&echo.把要修改的message文件拖放到本窗口----^>^<-----&echo.
set/p msg=
call :mz
if /i not exist msg(echo.%lg%下创建msg目录&md "msg"&pushd msg) else (echo.%lg%存在msg文件夹清空msg文件夹并解压文件到msg文件夹&pushd msg &del . /s/q/f>nul)
cpio-t <%msg%> txt.lst&&cpio -i <%msg% >nul 2>&1&&echo.解压%mc%成功!!&move /Y %msg% "%lg%%mc%.bak"&&echo. 改原文件%mc%为%mc%.bak
call :ztpz
cpio -o <txt.lst> ..\message&cd..\>nul&echo.如无出错则生成完成,文件将生成在===!cd!\message&echo.正准备打开MESSAGE所在的文件夹....&&ping -n 5 127.1>nul&&start /w "" "%lg%\"
pause&exit
:pz
cls &echo.&echo. 分辨率: 1024x768       800x600    640x480
echo.&set/p fbl=请选择.....
if not defined fblgoto :pz
if"%fbl: =%"=="1"(set /a width=1024,height=768) else (if"%fbl: =%"=="2"(set /a width=800,height=600) else (if"%fbl: =%"=="3"(set /a width=640,height=480) else (cls&goto :pz )))
echo.您选择的分辨率是 %width% X %height%
:nn
setentries=
echo.&set/p entries=最大菜单数:
if not defined entries   goto nn
echo. %entries%|findstr >nul||echo.非法输入请输入数字&&goto nn
cls& color %random:~-1%c&echo.以下为MESSAGE 的显示我隐藏选项, 如果你清楚怎么选,建议您回车到底
set show=
echo.&set/p show= 显隐"引导选项"(Y隐藏 /非Y显示,比如:回车)
if not defined show set show=N
if /i not "%show: =%"=="y" (set show=0) else (set show=1)
set reboot=
color %random:~-1%c&echo.&set/p reboot= 显隐"重启选项"(Y隐藏 /非Y显示,比如:回车)
if not defined reboot set reboot=N
if /i not "%reboot: =%"=="y"(set reboot=0) else ( set reboot=1)
set poweroff=
echo.&set/p poweroff= 显隐"关机选项"(Y隐藏 /非Y显示,比如:回车)
if not defined poweroff set poweroff=N
if /i not "%poweroff: =%"=="y"(set poweroff=0) else (set poweroff=1)
setlang=
color %random:~-1%c&echo.&set /p lang= 隐藏"语言选项"(Y隐藏 /非Y显示,比如:回车)
if not defined lang set lang=N
if /i not "%lang: =%"=="y"(set lang=0) else (set lang=1)
set help=
echo.&set /p help= 显隐"帮助选项"(Y隐藏 /非Y显示,比如:回车)
if not defined help set help=N
if /i not "%help: =%"=="y" (set help=0) else (set help=1)
move /y gfxboot.cfg gfxboot.cfg.bak >nul&&echo.旧的gfxboot.cfg备份为gfxboot.cfg.bak成功!!
(echo.penguin=0
echo.welcome=1
echo.boot_show=%show%
echo.xmenu_hide_current=1
echo.menu_start_x=78
echo.menu_start_y=116
echo.menu_max_entries=%entries: =%
echo.menu_bar_min_width=300
echo.menu_text_normal=0x80FF00
echo.menu_text_select=0x8000FF
echo.boot_text_options=0xffffff
echo.boot_text_normal=0xffffff
echo.infobox_bg=0xd8deed
echo.infobox_text_normal=0
echo.menu_bar_color=0xffffff
echo.loading_color=0x295202
echo.title_bg=0x4f9805
echo.hide_reboot=%reboot%
echo.hide_poweroff=%poweroff%
echo.disable_num_key=0
echo.hide_help=%help%
echo.hide_lang=%lang%
echo.custom_width=%width%
echo.custom_height=%height%
echo.custom_depth=32
echo.panel_normal=0xFFFFFF
echo.panel_title=0xffffff
echo.panel_high=0x80FF00
echo.panel_bg=0xd8deed
echo.panel_border=0xeff2f6)>gfxboot.cfg
goto :eof
:zt
tiltle 字体制作 use for MESSAGE
move /y 16x16.fnt 16x16.fnt.bak>nul 2>nul&&echo. 原字体重命名为16x16font.bak
cls &echo.把要转换的字体文件拖放到本窗口----^>^<-----&echo.&start "" "%windir%\fonts" >nul 2>&1
set/p font=拖放到此:
if not defined fontecho.不要没输字体文件名就回车好不,&ping -n 3 127.1>nul 2>nul&&goto zt
for %%i in (%font%) do set font=%%~nxi
mkblfont -v -l 18 -a 0x20-0x7e,0xa0-0xbf,0xc1-0xcb,0xcd-0xce,0xd0-0xd1,0xd3-0xd8,0xda-0xff -t "%~dp0bin\chs.txt" -f %font%:prop=2:space_width=4:size=17:nobitmap=1:autohint=1 16x16.fnt >nul&&echo.成功生成字体文件,%cd%\16x16.fnt
if not defined varstart "" "%cd%"
goto :eof
:mz
for%%iin (%msg%) do set lg=%%~dpi&pushd %%~dpi&set mc=%%~nxi
goto :eof
:ztpz
set var=
echo.&set/p var=跳过修改字体修改字体文件
echo.%var%|find "1" >nul 2>&1||call :zt &&TITLE 修改配置菜单
set var=
echo.&set/p var=跳过配置菜单修改    修改配置菜单
echo.%var%|find "1" >nul 2>&1||call :pz &&TITLE 压缩打包MESSAGE
goto :eof关于XPM 背图制作的回复:
原帖由 rplover 于 2010-6-8 01:38 发表 http://bbs.wuyou.net/images/common/back.gif
楼主,GRUB启动背景图片制作不懂用,运行了GRUBXPM.exe 把图片拖到窗口了,按回车

01.BMP       '转换'成:    "01.xpm"
—存放目录:
D:\Desktop\新建文件夹 (2)\新建文件夹\
任意按键= 01.xpm打包成01. ...

    因为批处理语句中用到了FOR 语句:   而 D:\Desktop\新建文件夹 (2)\新建文件夹\   有一对括号,造成FOR 语句出现错误,这是正常的, 如果非要判定路径是否带括号,然后再加上转义符号,没必要多些一段代码。
一般用批处理完成某个路径的文件应当直截必免出现带括号目录结构;
说白了就是别把文件放在文件夹名带括号的文件夹里面。

message DIY 工具下载:





点击MESSAGE——DIY演示贴

XPM XPM.gz请到附件下载




[ 本帖最后由 x9tian 于 2011-4-22 08:59 编辑 ]

sratlf 发表于 2010-2-17 12:44:57

支持下看效果怎么样对我来说就第一个有用第二三个有替代品

双响炮 发表于 2010-2-17 13:22:11

批处理功力不错,支持老兄

freesoft00 发表于 2010-2-18 21:31:48

顶一贴,下载回来慢慢看。

freesoft00 发表于 2010-3-13 23:38:48

不错,挺好的,收藏看看批处理

lyywyqd 发表于 2010-4-8 21:36:32

谢谢分享,很好很实用的工具!

yjd 发表于 2010-4-10 09:23:59

高玩都用批处理囧我只能手动了。

壹只鱼 发表于 2010-4-10 13:06:35

学习中。。。支持下。

ljy3282393 发表于 2010-4-12 01:36:17

谢谢楼主,已收藏下来准备学习下批处理。

金木水火土 发表于 2010-4-13 11:47:06

谢谢
非常实用的帖子

rplover 发表于 2010-6-8 01:38:11

楼主,GRUB启动背景图片制作不懂用,运行了GRUBXPM.exe 把图片拖到窗口了,按回车

01.BMP       '转换'成:    "01.xpm"
—存放目录:
D:\Desktop\新建文件夹 (2)\新建文件夹\
任意按键= 01.xpm打包成01.xpm.gz
关闭窗口= 结束程序

都找不到这个XPM.gz在哪

stuppid 发表于 2010-6-11 14:17:55

谢谢,很实用的工具

w55554 发表于 2010-10-8 22:29:10

看的晕了,收藏了仔细看看

2010wbhqf 发表于 2010-10-10 09:59:54

批处理命令挺长的,不过都是些简单命令的组合。

vocalsir 发表于 2010-10-15 01:39:47

2010armlin 发表于 2010-11-20 17:39:25

收藏了!谢谢!!!!!!

simonchan 发表于 2010-12-10 10:32:15

谢谢,下载试用。!!

tdrax 发表于 2010-12-31 21:49:14

谢谢LZ,LZ辛苦辛苦了。。

金木水火土 发表于 2011-1-1 21:02:04

非常实用的小东东
谢谢

devilma 发表于 2011-3-1 16:32:42

不错,那个单文件版很好,谢谢

20051234512345 发表于 2011-4-7 10:02:17

学习下~自己制作个~

2011after 发表于 2011-4-17 12:44:51

回复 #6 freesoft00 的帖子

请问你的那个能修改菜单最上边标题的那个程序,在哪里下载啊?我想修改最上面的标题

20111978 发表于 2011-4-21 09:24:31

收藏......就是“回复 #7 yanglin 的帖子”金山报有毒!!

yanglin 发表于 2011-4-21 11:39:08

回复 #26 20111978 的帖子

因为进行cmd转exe的所以杀毒回报毒。。

2011after 发表于 2011-4-22 12:28:37

回复 #7 yanglin 的帖子

你好,如下的软件好像没有,请看图片


[ 本帖最后由 2011after 于 2011-4-22 12:34 编辑 ]

2011wyqdbbs 发表于 2011-6-27 14:09:15

为什么都这么强大咯,我要学习,要学习,占位

x9tian 发表于 2011-6-27 19:38:09

原帖由 2011after 于 2011-4-17 12:44 发表 http://bbs.wuyou.net/images/common/back.gif
请问你的那个能修改菜单最上边标题的那个程序,在哪里下载啊?我想修改最上面的标题


那个是GRUB4 开发者的薯名地, 还是不要去动它吧。写这个批处理最终的目的是为了做PE的时后方便。

用着顺手了,才贴出来 与人方便自己方便。

那个薯名地有必要去改么。知道的你就是改了人家也知道那是GRUB不知道你改了人家也不会注到上面去。
页: [1] 2
查看完整版本: GRUB封装启动 相关批处理