|
原帖由 dpxqs 于 2009-12-26 15:19 发表
大家都等急了,怎么还没有新版放出来哟
谢谢你的支持 本来上次说的一个周就更新,现在看来又要食言了~~~ 这里给大家道歉,给支持我的朋友表示深刻的歉意!
其实在这一段时间里,我也做了很多的工作,PE也完善了不少,零零碎碎的更新也做了很多,但是一直没时间做一个完善的更新放出来~
最近一直在做毕业设计,也参加了学校一个比赛,人家要明年4月份要求出东西,时间紧,所以PE得这方面能抽出的时间就很有限了。
我把最近的工作进度先说说吧,不然让大家等的太久了,超级不好意思。
1修正不能从IPSET.INI文件读取IP的BUG,并在开始菜单添加IP设置快捷方式
2把几个咔吧斯基报毒的文件换了(其实没问题,只是因为加了个壳,喀吧弱的!)
4.把WXPE文件夹改名为SWPE,方便和盘
5.syslinux引导菜单改为中文,详细参照
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=148926&highlight=%D6%D0%CE%C4%B2%CB%B5%A5
6.SETUPLDR.BIN采用了合并NTDETECT.COM的版本。感谢天涯海角1216
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=153158&extra=page%3D2
7.入CCleaner等,用runscanner加载,效果不错。
8.正了有时网卡不能正常驱动的BUG(当声卡和网卡同时加载时有时不能
正确加载网卡,我也不知道为什么,我只是让声卡加载完成后再加载网卡),另外发现用PECMD SERV
启动服务时有时不成功,比如PECMD SERV SERVER就不成功 所以server服务还用NET START启动
9.动关联CHM,HTML等文件,加载网络支持之前可看电子书,打开网页文件
10.了一个系统DLL objsel.dll,可以设置文件夹权限了(虽然不常用,为了完善而已)
11.X盘可用空间(PECMD 的FBWF 指令設定成 P100 L300 H300)
12.修正快捷方式上右键双重菜单
13.一些细小的地方(不起眼,但很麻烦,只有自己做PE的人才真正懂得)
以上是之前一段时间做的工作,但因为在这个上面花的时间太少了,虽然更新了些,但也没一项是有点建设性的,看看实在没有发布出来的必要了,之前滑大侠提到的无线网络不能用的问题,一直没条件测试,还差得很多,哎~~~~
前一段时间看了x.Nichdlas 大大的和盘后对和盘产生了一些兴趣,我先把自己写的一些零零碎碎的东西放出来,就算是个预览吧,汗···
那天看到x.Nichdlas 大大的ISO 文件的生成是用UI的命令行参数,百度+Google了一番 发现找到的全是纯英文的,哎,四级没过,看的头大,最后还是翻译了一下,希望对要用到的朋友有点帮助(E文太烂,或许有错的,有些没翻译完全。保留了英文的)
UltraISO命令行参数:
-volume string 设置卷标 Volume Label
-sysid string 系统ID System ID
-appid string 应用程序 ID Application ID
-volset string 卷集编号 Volume Set ID
-preparer string 申报者 Preparer
-publisher string 出版商 Publisher
-ilong 允许 ISO9660 格式支持 31个字节的文件名 Long filename for ISO 9660 volume, up to 31 chars
-imax 使用ISO 9660-MAX文件名(长度最多支持207个字符) Max filename for ISO 9660 volume, up to 207 chars
-vernum 包括文件的版本号 Include file version number
-lowercase 允许有小写字母 allow-lowercase
-joliet Create joliet volume
-jlong Long filename for joliet volume, up to 103 chars
-rockridge Create RockRidge volume
-udf Create UDF volume
-hfs Create Apple HFS volume
-udfdvd 创建的UDF DVD映像,这个选项将覆盖所有其他的卷设置 Create UDF DVD image, this option will overwrite all other volume settings
-bootfile filename 设置启动文件
-bootinfotable 生成开机启动信息表文件 Generate boot information table in boot file
-optimize 优化档案编码相同的文件只有一次系统 Optimize file systems by coding same files only once
-file filename 添加指定的文件或文件夹,包括文件夹及其中所有文件(源.ISO有此文件或文件夹) Add one file or folder (include folder name and all files and folders under it)
-directory dirname 添加指定的文件或文件夹,包括文件夹及其中所有文件(源.ISO无此文件或文件夹) Add all files and folders under given directory (not include directory name itself)
-newdir dirname 创建一个新的文件夹 Create a new directory
-chdir dirname 在ISO文件中改变当前文件夹 Change current directory in ISO image
-rmdir filename 从ISO映像删除文件或文件夹(应指定完整路径) Remove a file or folder from ISO image (full path should be specified)
-pn filename n=1-9, 设置文件或文件夹优先级(应指定完整路径) n=1-9, set priority of a file or folder(full path should be specified)
-hide filename 设置要隐藏的文件或文件夹 (应指定完整路径) Set hidden attribute of a file or folder(full path should be specified)
-ahide filename 设置要进行高级隐藏的文件或文件夹属性 (应指定完整路径) Set advanced hidden attribute of a file or folder(full path should be specified)
-input filename 输入(打开)一个ISO镜像文件 Input ISO image
-output filename 输出ISO镜像 Output ISO image
-bin2iso filename 把输入的CD/DVD映像转换为ISO格式 Convert input CD/DVD image to ISO format
-dmg2iso filename 把输入的DMG映像转换为ISO格式 Convert input DMG image to ISO format
-list filename 生成一个ISO镜像中的文件列表 Create a list of files and folders in an ISO image
-get filename 设置文件解开(提取)的文件夹(应指定完整路径) Set a file or folder(full path should be specified) to be extracted
-extract dirname 提取(解开)ISO映像到指定目录 Extract ISO image to specified directory
-copy drive: 将光驱(CD/DVD)中的文件制作成ISO镜像 Make ISO image from a CD/DVD drive (use -output to define the filename)
-checksum 保存文件之前创建一个ISO映像校验 Create file checksums before saving an ISO image
-md5 ISO映像保存后生成MD5哈希码 Generate MD5 hash code of ISO image after saved
-crc32 ISO映像保存后生成CRC-32校验 Generate CRC-32 checksum of ISO image after saved
-crc16 ISO映像保存后生成CRC-16/CRC-CCITT校验 Generate CRC-16/CRC-CCITT checksum of ISO image after saved
--checksum filename 为ISO映像创建文件校验 Create file checksums of an ISO image
--md5 filename 为ISO映像创建MD5哈希码 Generate MD5 hash code of an ISO image
--crc32 filename 为ISO映像创建CRC-32校验 Generate CRC-32 checksum of an ISO image
--crc16 filename 为ISO映像创建CRC-16/CRC-CCITT校验 Generate CRC-16/CRC-CCITT checksum of an ISO image
-veryfy filename.iso.md5 验证ISO映像的文件校验 Verify file checksums of an ISO image
-veryfymd5 filename.md5 验证ISO文件的 MD5值 Verify MD5 checksum of an ISO image
-cmd filename 从一个文件中读出全部参数 Read ALL coammnd-line options from a text file
-silent 安静模式,不显示任何输出信息 Do not show any popup windows
返回信息:0 为成功 ,-1 为发生错误 Return code: 0 for success, -1 for error
示例1:
1) ultraiso -imax -l -f c:\autoexec.bat -d "c:\program files\ultraiso" -volu TEST_CD -out c:\test.iso
创建一个光盘镜像,在其中添加一个文件(autoexec.bat)以及c:\program files\ultraiso目录下所有文件。使用ISO 9660-MAX
文件名长度(最多207个字符),允许小写字母。
提示: 你可以使用简写参数 比如: 'l' 为 'lowercase' 的简写。 'out' 是 'output'的简写, 只要不与其他参数冲突. 此外,所有的包含空格的字符或文件名应该用“”。
2) ultraiso -in c:\test.iso -f c:\config.sys -f "c:\program files\ultraiso"
打开一个ISO文件,然后在其中添加了一个文件和一个文件夹
3) ultraiso -in c:\test.iso -c "/program files/ultraiso" -f "c:\autoexec.bat" -rm /autoexec.bat
Open an ISO image exists, change directory and add one file there; then remove one file.
提示 '/'是ISO映像路径分隔符。'/' is used as path separators in an ISO image.
示例2:
-f "xp\i386" 把命令所在目录下的下的i386下的所有文件添加到ISO中已有i386中。
-f "dddddd\EZBOOT" 与上相同
-d "driver\readme" 把目录所在目录下的driver下的readme目录及其下的所有文件和子目录添加到ISO中(源.ISO无readme目录)
综合:
ultraiso -in 源.iso -rm /要删的文件1.ext -rm /要删的文件2.ext -rm /要删的文件3.ext -rm /boot/要删的文件4.ext -rm /I386/要删的文件5.ext -rm /I386/要删的文件6.ext -f "aaaaa\i386" -f "dddddd\EZBOOT" -d "ddddddd\readme" -jlong -imax -optimize -bootfile yhfjj\boot.bin -volu 卷标xxxxx -out 目标.iso
ultraiso -volume abc -file "c:\abc" -output "c:\abc.iso" 把abc制作成ISO
ultraiso -volume bbb -file "c:\abc" -compress 0 -password ??? -output "c:\bbb.isz" 把bbb制作成ISZ加密格式
其他还有谢谢对和盘的一些小想法,看了x.Nichdlas 的和盘的菜单部分,基本都是把要用的菜单每个都做了一个文件,但那样的话最后文件实在太多,看着不舒服,我的想法是:把所有的菜单都放到一个文件里,然后根据用户的选择动态生成,呵呵 经过一番努力实现了!!!
希望对以后的和盘有所帮助,准备在下一个版本中加入一个定制功能(或许没什么必要,哈哈)。
这里我主要说说菜单的生成,我是这样做的
先在一个文件里定义菜单,把每个要用到的菜单写在一组特定的标志字符之间,然后用批处理动态截取
下面给个例子,一看就明白的
先是菜单的定义(其中_G_PubA、_G_PE为标志字符,每个菜单写在形式如_G_PubA和_G_PubA_End的标志字符之间):保存成menu.cfg- _G_PubA
- timeout 10
- default 3
- color white/blue blink-yellow/blue
- find --set-root --ignore-floppies /BOOT/GRUB/BJ.GZ
- fontfile /BOOT/GRUB/FONT.GZ
- splashimage /BOOT/GRUB/BJ.GZ
- title ★《水雾殇雪》WinPE 系统维护菜单★
- clear
- _G_PubA_End
- _G_PE
- title 【 ID 】 启动《水雾殇雪》WinPE 维护系统 \n BBS.WUYOU.NET - molingjian
- find --set-root --ignore-floppies /BOOT/GRUB/BJ.GZ
- chainloader /SWPE/SETUPLDR.BIN
- _G_PE_End
- _G_PubB
- title 【 ID 】 重新启动计算机 O(∩_∩)O \n
- reboot
- title 【 ID 】 关闭您的计算机 O(∩_∩)O
- halt
- _G_PubB_End
复制代码 标志字符格式形式如
_mark
具体内容
_mark_End
当然如果你会修改后面的批处理的话,可以更灵活一些。
以下是菜单截取的批处理(我把它做成一个独立的程序段,在具体的地方可以加参数调用):- :Get_menu
- @ECHO off&SETLOCAL EnableDelayedExpansion
- CLS&ECHO.&ECHO 正在生成启动菜单,请稍等......
- FOR /f "delims=" %%a in ('findstr /n .* %1') do (
- SET "str=%%a "&SET "str=!str:*:=!"
- IF "!str!"=="_%2_End " SET "flag="
- IF defined flag (
- IF "!str!"=="" (ECHO.) else (
- IF not "!str:【 ID 】=!"=="!str!" SET /a n+=1
- FOR %%i in (!n:~-2!) do SET "str=!str:【 ID 】=【 %%i 】!"
- ECHO;!str:~0,-1!>>%3
- )
- )
- IF "!str!"=="_%2 " SET flag=a
- )
- GOTO :eof
复制代码 我们可以在别的地方调用 如:
SET /a n=100&FOR %%i in (G_PubA G_PE G_PubB) do (CALL :Get_menu menu.cfg %%i menu.lst)
更简洁的,直接把菜单和菜单配置文件写在一个文件中,直接这样调用
SET /a n=100&FOR %%i in (G_PubA G_PE G_PubB) do (CALL :Get_menu %0 %%i % menu.lst)
(要把@ECHO off&SETLOCAL EnableDelayedExpansion开启变量延迟这句写在批处理的最前面,即调用之前,不然ID会出错)
这里只要改变 in 后括号中内容为你自己的标志字符即可,菜单配置文件中的【 ID 】会自动被替换成编号
Get_menu 子程序调用时需要加参数
示例: Call :Get_menu <文件名> <标志> <输出文件名>
例如:Call :Get_menu a.txt Marka b.txt ,将读取a.txt中_Marka到_MarkA_End之间内容到b.txt中
其实永远都没有一个绝对完美的PE,自己亲手做出来的,才是最喜欢的。希望喜欢我的PE的朋友能给我提更多的建议,指出更多的问题,大家一起进步吧。
向论坛里勤奋的高手们致敬!!!
PS:考试中~~~ 明天的监考听说很变态,是我们学院四大名监之一,生死未卜...........
[ 本帖最后由 molingjian 于 2009-12-27 12:17 编辑 ] |
|