回复 #264 dvd008 的帖子
见 273楼 .................. 原帖由 dvd008 于 2012-2-15 16:54 发表 http://bbs.wuyou.net/images/common/back.gif不带ALIGN, 类型为B
没有成功
用U24
看是否成功,用下载包中的getmbr.wcs 设置ALIGN=2M 起始111M 大小32M
半成功
结果:
起始112M,大小0
看来还有点小问题.
其它测试现在是成功了.
显示磁盘信息有点麻烦,不过,我把这些命令行都写出,
用时,先修改,再复制粘贴,也挺方便. 原帖由 lmle 于 2012-2-15 15:38 发表 http://bbs.wuyou.net/images/common/back.gif
用“MESS %A%=%B%i%%”显示“中文=中文”,FIND为什么判断不了呢?
1.变量处理有标准模式和兼容模式. 兼容模式旧PECMD(3.9).
兼容模式 是不稳定的. 不能保证程序正常工作.
2.
//假设之前的程序或脚本使用了变量B,设置了变量B,看看 PECMD 3.9 能如你所愿工作吗?(不能)
envi B=1
envi i=3
envi A=中文
envi B3=中文
FIND $%A%=%B%i%%, mess 找到“%A%”@OK #OK
MESS END @OK#OK
3.兼容模式中, 条件处理和文字处理不同. 是由于对未定义变量处理不同造成的.
文字处理中 未定义变量 保持原样. 如 %C% 还是 %C%
条件处理中 未定义变量 当作空. 如 %C% 为空
MESS%C% @OK#OK 显示 %C%
FIND $%C%=, ...
这里%C% 为空, 因而条件为真.
4. 兼容模式条件处理是3.9作者自定义的,我们只能猜测. 简单的还能猜. 复杂的就碰到再说.
关键是兼容模式不稳定.不能保证程序正常工作. 费大劲结果还是个未知.
5. 标准模式处理.
用ENVI~一步一步,脱去嵌套变量的外衣.最终不需要嵌套变量形式.这样才能控制程序正常工作.
ENVI~ NewName=old_expr //脱一件
ENVI~~NewName=old_expr //一下脱2件
见ENVI/SET 帮组.
上面程序为
envi B=1 //不影响
envi i=3
envi A=中文
envi B3=中文
envi~ Bi=B%i%
FIND $%A%=%Bi%, mess 找到“%A%”@OK #OK
MESS END @OK#OK
6. 我尽量使兼容模式能处理你给的样例情况.
[ 本帖最后由 2012abc19701 于 2012-2-15 18:51 编辑 ] 不带ALIGN,也半成功 原帖由 dvd008 于 2012-2-15 18:44 发表 http://bbs.wuyou.net/images/common/back.gif
不带ALIGN,也半成功
你什么命令? 用U24 吗? 长度0B?
如果 start len 本身是对齐的, 有没有 -align 一样.
[ 本帖最后由 2012abc19701 于 2012-2-15 18:52 编辑 ]
[更新到159#280]PECMD-32.2012.1除夕版.多窗口多线-U24+裸机系统+18M酷MiniPE
[更新159#280]PECMD-32.2012.1除夕版.多窗口多线-U24+裸机系统+18M酷MiniPEPECMD-32.2012.1除夕版.多窗口多线-U24(已升级) +裸机系统 抢鲜版 + 18M-COOLMiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/
变量兼容模式 原帖由 lmle 于 2012-2-15 15:38 发表 http://bbs.wuyou.net/images/common/back.gif
用“MESS %A%=%B%i%%”显示“中文=中文”,FIND为什么判断不了呢?
U25能兼容这种情况.
envi i=3
envi A=中文
envi B3=中文
FIND $%A%=%B%i%%, mess 找到“%A%”@OK #OK
原帖由 dvd008 于 2012-2-15 15:26 发表 http://bbs.wuyou.net/images/common/back.gif
len 没有MK等,默认是整个分区吗?
如图操作,结果那样
pecmdpart -super-align=2m 0#4 a 07131m 35
这里长度为35字节. 按照扇区对齐,往小里调整,变为0.
[ 本帖最后由 2012abc19701 于 2012-2-15 21:08 编辑 ]
[更新159#280]PECMD-32.2012.1除夕版.多窗口多线-U26+裸机系统+18M酷MiniPE
[更新159#280]PECMD-32.2012.1除夕版.多窗口多线-U26+裸机系统+18M酷MiniPEPECMD-32.2012.1除夕版.多窗口多线-U26(已升级) +裸机系统 抢鲜版 + 18M-COOLMiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/
FIX: -alignstart/len 长度后缀 原帖由 2012abc19701 于 2012-2-15 21:05 发表 http://bbs.wuyou.net/images/common/back.gif
pecmdpart -super-align=2m 0#4 a 07131m 35
这里长度为35字节. 按照扇区对齐,往小里调整,变为0.
137145
137146
用U26创建:
pecmdpart -super-align=2m 0#4 a 07131m 35m
start=131m 但2m对齐, 所以往大的移start=32m, 移1m. 这样len少1m 变为34m.
34m 恰好使得尾部2m对齐
实际:pecmdpart -super-align=2m 0#4 a 07132m 34m
132m 对应 270336 个扇区. 如图.
34m 对应 69632 个扇区
这样 结尾end=270336 +69632-1=339967,如图. 26版,基本通过.待更详细测试.
258楼的磁盘显示信息,那几个图片,里面具体数的说明,能不能给出? 或加入PECMD说明,或另付说明.
分区显示信息可能需要完善, 如图, 貌似没有分区大小.偏移(你这里是字节,正确的),
DIKSGEN使用的是扇区数, DISKPART自动调整K或者M, 小于1M它使用K,大于使用M.这个到没什么,不过是习惯.
是不是应该也显示分区大小? 根据你提供的说明,我整理出这些,方便直接复制粘贴使用,
只有显示信息(你258楼图片)部分没有写,等你进一步说明.
显示几个硬盘
PECMD "TEAM PART list disk,name|MESSdisk[%name%]"
显示第一物理磁盘0 的信息, 第二物理磁盘号为1 .....
PECMD "TEAM PART list disk 0,name|MESSdisk0[%name%]"
显示磁盘0的分区信息
PECMD "TEAM PART list part 0,name|MESSdisk0,part[%name%]"
显示磁盘0,1分区的信息
PECMD "TEAM PART list part 0#1,name|MESSpart0--1[%name%]"
修改命令行磁盘号,分区号,即可显示需要的信息.
删除分区可以 简化为
PART DEL [磁盘]#分区
删除0号(第一物理硬盘),1分区
PECMD PART DEL 0#1
PECMD PART -super DEL 0#1
原命令还有效(删除分区)
PART [磁盘]#分区 -a 0 0 0
删除0号(第一物理硬盘),1分区
PECMD PART 0#1 -a 0 0 0
PECMD PART -super 0#1 -a 0 0 0
磁盘级 查看分区的脚本 getmbr.wcs
//用法load getmbr.wcs [磁盘号]
// 磁盘号: 0-N 默认0
pecmd load getmbr.wcs
pecmd load getmbr.wcs 0
pecmd load getmbr.wcs 1
创建分区:
创建0号磁盘,1分区,起始2M对齐,激活,07类型,起始偏移(位置)131M,大小35M.
因为使用了-align=2m参数,分区起始将调整为132M,大小34M,全部对齐.
pecmdpart -super-align=2m 0#1 a 07131m 35m
pecmdpart -super-align=128k 0#1 a 0x07131m 35m 期待楼主完善。。加油
[更新161#288]PECMD-32.2012.1除夕版.多窗口多线-U27+裸机系统+18M酷MiniPE
[更新161#288]PECMD-32.2012.1除夕版.多窗口多线-U27+裸机系统+18M酷MiniPEPECMD-32.2012.1除夕版.多窗口多线-U27(已升级) +裸机系统 抢鲜版 + 18M-COOLMiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/
U27 -img=文件名 操作磁盘镜象 -CHS=C:H:S
│PART [-admin] [-super] [-align[=..]] [-alignend[=..]][-clear]
│ [-raw][-CHS=C:H:S][-img=文件名|磁盘]#分区 type]
│PART list disk [磁盘],变量名
│PART list part [磁盘[#分区]],变量名
│PART /mbr[=nt5|=nt6|=dos|=文件名] [-img=文件名|磁盘] MBR写入功能,测试目前通过.
能不能加PBR写入功能,即MS的BOOTSECT.EXE 提供的功能,是WIN7的,但是,可呀用于NT5.我那个03PE内置了.
仅需要:bootsect/nt60 c: NT60的写到C盘
bootsect /nt52 X: NT5的写到X盘
这样,+已经有的MBR写入, 可以方便手工安装PE或者GHOST系统.
下面是其完整说明,但是,只要上面两个代码即可.
bootsect.exe :命令行输入
可以写mbr,bootsect c: /mbr 主引导纪录(mbr)一般都在c盘
用MBR选项同时恢复主引导记录,bootsect /nt52 C: /mbr
bootsect/nt60 c: /mbr /force
bootsect /nt52 X:(X为WIN下要写入引导的盘符),引导文为xp/2k3的NTLDR
bootsect /nt60 X:引导文件vista,win2008,win7的bootmgr 。
bootsect.exe {/help | /nt52 | /nt60} {SYS | ALL | <DriveLetter:>} /mbr
如,将NTLDR 主启动代码应用到标记为 E 的卷:
bootsect.exe /nt52 E:把E盘的引导标志改为ntldr
命令参数描述
/help显示用法说明。
/nt52将NTLDR 主启动代码应用到 SYS、ALL 或 <DriveLetter>。
/nt60将BOOTMGR 主启动代码应用到 SYS、ALL 或 <DriveLetter>。
SYS更新用于启动 Windows 的系统分区上的主启动代码。并不改mbr,是改盘符引导标记
ALL更新所有分区的主启动代码(引导标记)。不更新每个卷启动代码,更新可启动卷的启动代码。
<DriveLetter> 更新与此驱动器号关联的卷上的主启动代码。
/force在启动代码更新期间强制卸除卷,用于情况不明的失败。谨慎使用该选项。
/mbr
更新主启动记录,而不对包含 SYS、ALL 或 <drive letter> 指定的分区的磁盘扇区 0 上的分区表进行更改。当与 /nt52 选项一起使用时,主启动记录将与 Windows Vista 以前版本的操作系统兼容。当与 /nt60 选项一起使用时,主启动记录将与 Windows? 7 或 Windows Server? 2008 兼容。
命令向磁盘中写入新的主引导记录: 分区,还有个问题,看看怎么解决好:
1. 只写入ALIGN 和大小,完成第一分区(即不用输入起始偏移)
2. 有了第一分区后, 第二分区如何紧接着分区,只输入大小(即2,3,4分区可以顺序分,给大小即可)
因为这个第二分区如果输入起始,需要麻烦的计算,才能紧接第一分区. 原帖由 dvd008 于 2012-2-16 07:55 发表 http://bbs.wuyou.net/images/common/back.gif
26版,基本通过.待更详细测试.
258楼的磁盘显示信息,那几个图片,里面具体数的说明,能不能给出? 或加入PECMD说明,或另付说明.
分区显示信息可能需要完善, 如图, 貌似没有分区大小.偏移(你这里是字节,正确的 ...
PECMD说明中有
│PART list disk [磁盘],变量名
│PART list part [磁盘[#分区]],变量名
┼───────────────────────────────
│list disk 没有磁盘时列出磁盘列表,有则返回 磁盘号 大小 柱面数 磁头数 扇区S 扇区大小 媒体类型 ┃
│list part [磁盘] 默认hd0,没有分区时列出分区列表(-为空,@为扩展分区),有则返回 分区号 类型 引导┃
│ 标志 起始偏移 大小 隐藏扇区数
│变量名:返回查询结果。
U27:
pecmd " TEAM PARTlist part 0,var|mess MESSpart 磁盘0分区:[%var%]"
说明: []中为磁盘0的所有分区. @3 表示 0#3 为扩展分区 -4表示 0#4 为空闲分区条目.
其它为分区逻辑号(window操作号).
pecmd " TEAM PARTlist part 0#1,var|mess MESSpart 磁盘0分区1:[%var%]"
1: 分区逻辑号
22: =0x16 分区类型
0:引导标志 不可引导
312560640: 分区起始位置,单位字节,相对磁盘开头的偏移, 对应分区命令PART中的start
740275200: 分区大小,单位字节, 对应分区命令PART中的len
610470: 隐藏扇区数。 表示分区之间的间隙,即分区之前没有分到分区中的空间。这里为最前面分区,
所以就是分区起始位置。312560640/512=610470. 原帖由 dvd008 于 2012-2-16 08:13 发表 http://bbs.wuyou.net/images/common/back.gif
根据你提供的说明,我整理出这些,方便直接复制粘贴使用,
只有显示信息(你258楼图片)部分没有写,等你进一步说明.
显示几个硬盘
PECMD "TEAM PART list disk,name|MESSdisk[%name%]"
显示第一物理磁 ...
整理得很好!!!!!!!!!!!!!!!!!!! 原帖由 2012abc19701 于 2012-2-15 15:24 发表 http://bbs.wuyou.net/images/common/back.gif
目前没有这个选项.
CALL @子程式
_SUB 子程式,W210H114,新視窗,,
CHEK 選取框1,L8T15W200H20,測試pecmd選取框1,,0
CHEK 選取框2,L9T45W200H20,選取框2,,0
_END
左邊為pecmd 4.0的執行畫面,右邊為U27的執行畫面
CHEK 的標題一個靠左,一個居中
[更新到162#294]PECMD-32.2012.1除夕版.多窗口多线-U27+裸机系统+18M酷MiniPE
[更新162#294]PECMD-32.2012.1除夕版.多窗口多线-U27+裸机系统+18M酷MiniPEPECMD-32.2012.1除夕版.多窗口多线-U28(已升级) +裸机系统 抢鲜版 + 18M-COOLMiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/
U28 控件左对齐。 按钮图标 原帖由 bahmo 于 2012-2-16 10:50 发表 http://bbs.wuyou.net/images/common/back.gif
CALL @子程式
_SUB 子程式,W210H114,新視窗,,
CHEK 選取框1,L8T15W200H20,測試pecmd選取框1,,0
CHEK 選取框2,L9T45W200H20,選取框2,,0
_END
左邊為pecmd 4.0的執行畫面,右邊為U27的 ...
U28
子程式
_SUB 子程式,W350H260,新視窗PECMD2012.1.28,,
CHEK 選取框1,L8T15W200H20,測試pecmd選取框1,,0
CHEK 選取框2,L8T45W200H20,選取框2,,0
RADI R1,L8T70W200H20,卸载,ENVI @Group1=%RadioButton1%,1,1
ITEM B1,L8T108W300H54,aaa,EXEC explorer.exe,%SystemRoot%\explorer.exe
ITEM B1,L8T170W300H54,aaa,EXEC explorer.exe
_END
回复 #256 2012abc19701 的帖子
可能是我不会使用,但我查看了内部的menu.lst,发现是使用map功能实现PE和DOS启动,至于LINUX,UD区也可以与此菜单一样的方式启动。 能不能加PBR写入功能,即MS的BOOTSECT.EXE 提供的功能,是WIN7的,但是,可呀用于NT5.我那个03PE内置了.仅需要:bootsect/nt60 c: NT60的写到C盘
bootsect /nt52 X: NT5的写到X盘
这样,+已经有的MBR写入, 可以方便手工安装PE或者GHOST系统.
分区,还有个问题,看看怎么解决好:
1. 只写入ALIGN 和大小,完成第一分区(即不用输入起始偏移)
2. 有了第一分区后, 第二分区如何紧接着分区,只输入大小(即2,3,4分区可以顺序分,给大小即可)
因为这个第二分区如果输入起始,需要麻烦的计算,才能紧接第一分区. 原帖由 2012abc19701 于 2012-2-16 11:58 发表 http://bbs.wuyou.net/images/common/back.gif
U28
子程式
_SUB 子程式,W350H260,新視窗PECMD2012.1.28,,
CHEK 選取框1,L8T15W200H20,測試pecmd選取框1,,0
CHEK 選取框2,L8T45W200H20,選取框2,,0
RADI R1,L8T70W200H20,卸 ...
再報個bug
CALL @子程式
_SUB 子程式,W350H260,新視窗PECMD2012.1.28,,
CHEK 選取框 1,L8T15W200H20,測試pecmd選取框1,,0
CHEK 選取框 2,L8T45W200H20,選取框2,,0
RADI R1,L8T70W200H20,卸載,ENVI @Group1=%RadioButton1%,1,1
ITEM B1,L8T108W300H54,aaa,EXEC explorer.exe,%SystemRoot%\explorer.exe
ITEM B1,L8T170W300H54,aaa,EXEC explorer.exe
ENVI @選取框 1.Check=1
ENVI @選取框 2.Check=1
_END
發現 ENVI @選取框 1.Check=1 無動作
因為 選取框 1 中間有空白
PECMD 4.0下測試沒有問題,U28無動作 显示第一物理磁盘0 的信息, 第二物理磁盘号为1 .....
disk0,
磁盘号0 大小40007680000 柱面数4863 起始柱面0 磁头数255 每磁道扇区数63
PECMD "TEAM PART list disk 0,name|MESSdisk0[%name%]"
和你说明里面有点差别,看看怎样是正确的. 特别是 0 255 63 里这个0 SHOW命令也请给几个典型
1. 显示全部隐藏分区,自动分配盘符
2.显示指定分区,自动分配盘符
3.显示指定分区,手工指定盘符
4.删除指定分区的盘符
5.更改指定分区盘符.
差不多这几个吧
如
显示全部硬盘分区,自动分配盘符
pecmd show f:-1
显示全部硬盘可见分区,自动分配盘符
pecmd show f:0
显示全部USB盘,自动分区
pecmd show u:-1
想显示全部硬盘U盘,自动分配,下面无效.说明里面好像可以?
pecmd show -1:-1
[ 本帖最后由 dvd008 于 2012-2-16 13:55 编辑 ]
回复 #1 2012abc19701 的帖子
[更新163#301]PECMD-32.2012.1除夕版.多窗口多线-U29+裸机系统+18M酷MiniPEPECMD-32.2012.1除夕版.多窗口多线-U29(已升级) +裸机系统 抢鲜版 + 18M-COOLMiniPE(已升级)
***已通过启动PE测试***
下载: http://mdyblog.blog.163.com/blog/static/106150119201202591855298/
163#301楼 U29 FIX 原帖由 bahmo 于 2012-2-16 12:46 发表 http://bbs.wuyou.net/images/common/back.gif
再報個bug
CALL @子程式
_SUB 子程式,W350H260,新視窗PECMD2012.1.28,,
CHEK 選取框 1,L8T15W200H20,測試pecmd選取框1,,0
CHEK 選取框 2,L8T45W200H20,選取框2,,0
RADI R1, ...
U29:
子程式aaaaaaaaaa bbbbbbbbb
_SUB 子程式,W350H314,新視窗,,
CHEK 選取框 1,L8T15W200H20,測試pecmd選取框1,,0
CHEK 選取框 2,L9T45W200H20,選取框2,,0
RADI R1,L8T70W200H20,卸载,ENVI @Group1=%RadioButton1%,1,1
ITEM B1,L8T108W300H54,%1,EXEC explorer.exe,%SystemRoot%\explorer.exe
ITEM B1,L8T170W300H54,%2,EXEC explorer.exe
ENVI @選取框 1.Check=1
ENVI @選取框 2.Check=1
_END
BTW:空格做变量名, 不是好的编程风格。 没有必要,毕竟变量名是看不见的。 原帖由 dvd008 于 2012-2-16 12:54 发表 http://bbs.wuyou.net/images/common/back.gif
显示第一物理磁盘0 的信息, 第二物理磁盘号为1 .....
disk0,
磁盘号0 大小40007680000 柱面数4863 起始柱面0 磁头数255 每磁道扇区数63
PECMD "TEAM PART list disk 0,name| ...
U29:
PECMD "TEAM PART list disk 0,var|MESSdisk0[%var%]"
磁盘号0 大小40007680000 柱面数4863 磁头数255 每磁道扇区数63每扇区512字节 FixedMedia(12, 磁盘媒体类型)