nn2nn 发表于 2007-11-8 11:07:06

下面的INI文件是不成功的,有CMD高手帮我改改,现在是不求效率,只求成功了。


ENVI VD=PETOOLS
ENVI VP=B
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=C
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=D
IFEX %VP%:\%VD%,CALL MAKELINK

//......

/////////////////
//从B到Z,如何优化?
_SUB MAKELINK
ENVI V0=%USERPROFILE%\「开始」菜单\%VP%盘工具
LINK %V0%\target,%VP%:\%VD%
TEAM FILE Desktop.ini=>%V0%|SITE %V0%\*.*,+A+H+S|SITE %V0%,+R+S
_END

lxl1638 发表于 2007-11-8 11:30:10

呵呵,PECMD.EXE对目录存在的判断存在BUG(整理源码是删去了一行对目录存在的判断),周未更正。

将(蓝色部分):
_SUB MAKELINK
ENVI V0=%USERPROFILE%\「开始」菜单\%VP%盘工具
LINK %V0%\target,%VP%:\%VD%
TEAM FILE Desktop.ini=>%V0%|SITE %V0%\*.*,+A+H+S|SITE %V0%,+R+S
_END

要实现的功能做成一个.INI文件,用PECMD.EXE的 Load 命令加载这个.INI文件,Load 命令能自动 搜索指定目录名中的.INI文件,找到这个.INI文件也就找到这个目录,%CurDrv%即为该目录所分配的盘符,其它都好办了。

nn2nn 发表于 2007-11-8 12:07:09

Load 命令能自动 搜索指定目录名中的.INI文件
但LOAD命令只会加载一个吧,

我想的是可以多加呀,也不想做多个INI文件。

nn2nn 发表于 2007-11-8 12:10:15

PECMD缺少循环命令。

同时建议IFEX可以判断注册表。

lxl1638 发表于 2007-11-8 12:26:54

原帖由 nn2nn 于 2007-11-8 12:10 PM 发表 http://bbs.wuyou.net/images/common/back.gif
PECMD缺少循环命令。
同时建议IFEX可以判断注册表。

越搞越复杂了,你的要求是读取注册表中某个键名的数据?
但数据类型有多种(好象有5种吧),搞起来很复杂,要完成这个功能,PECMD得设计多一条新命令----比较数值(以前的命令只能比较字符串)。

nn2nn 发表于 2007-11-8 12:31:16

回复 #1140 lxl1638 的帖子

可以只考虑键名(或者项)的存在。

因为只用于判断。

绝大多数是用于判断某个工具是否初始化了。

[ 本帖最后由 nn2nn 于 2007-11-8 12:38 PM 编辑 ]

lxl1638 发表于 2007-11-8 12:49:02

原帖由 nn2nn 于 2007-11-8 12:07 PM 发表 http://bbs.wuyou.net/images/common/back.gif
Load 命令能自动 搜索指定目录名中的.INI文件
但LOAD命令只会加载一个吧,
我想的是可以多加呀,也不想做多个INI文件。

你的意思是多加什么? 将多个 WIM 链接到一个目录?
PECMD.EXELoad 一个 INI 时会生产%CurDrv%的内部环境变量,
你可以在这个 INI 内,使用%CurDrv%这个环境变量进行其它操作。

如下面反复调用 MAKELINK ,
将 %CurDrv%\PETools\磁盘工具
    %CurDrv%\PETools\系统工具
这两个目录链接到「开始」菜单下。


_SUB MAKELINK
      ENVI V0=%USERPROFILE%\「开始」菜单\%VN%
      LINK %V0%\target,%VP%
      TEAM FILE Desktop.ini=>%V0%|SITE %V0%\*.*,+A+H+S|SITE %V0%,+R+S
_END

ENVI VN=磁盘工具
ENVI VP=%CurDrv%\PETools\%VN%
CALL MAKELINK

ENVI VN=系统工具
ENVI VP=%CurDrv%\PETools\%VN%
CALL MAKELINK


[ 本帖最后由 lxl1638 于 2007-11-8 12:51 PM 编辑 ]

lxl1638 发表于 2007-11-8 12:52:42

原帖由 nn2nn 于 2007-11-8 12:31 PM 发表 http://bbs.wuyou.net/images/common/back.gif
可以只考虑键名(或者项)的存在。

因为只用于判断。

绝大多数是用于判断某个工具是否初始化了。

不管3721,初始化一次算了。

nn2nn 发表于 2007-11-8 13:05:43

回复 #1142 lxl1638 的帖子

想用一个INI文件,加多个目录连接到菜单。

从B到Z盘搜索,有PETOOLS目录的就加入,否则就跳过。

如果判断文件存在修正了。

就想精简下,FOR B TO Z
如果不能FOR写下也无所谓。

没什么大问题了,只等判断文件存在修正。

[ 本帖最后由 nn2nn 于 2007-11-8 01:11 PM 编辑 ]

lxl1638 发表于 2007-11-10 21:05:13

翻新了,说明见1楼。。。。。。。。。。。

123 发表于 2007-11-10 21:45:09

未必要显示隐藏分区才能用里面的文件,分配的盘符可以不是字母

nn2nn 发表于 2007-11-10 22:10:19

看来
PE外置形式——开放式PE外置架构设想

就快可以实现了。

不管原PE是否取用这架构,执行一个CMD就可以实现了,比PE本地化更灵活点。

yd21 发表于 2007-11-12 00:09:51

建议在托盘图标的菜单中加入为Usb磁盘分配盘符,和为隐藏分区分配盘符,这样就方便多了

lxl1638 发表于 2007-11-12 01:14:14

原帖由 yd21 于 2007-11-12 12:09 AM 发表 http://bbs.wuyou.net/images/common/back.gif
建议在托盘图标的菜单中加入为Usb磁盘分配盘符,和为隐藏分区分配盘符,这样就方便多了

自己根据 PECMD.EXE 的 SHOW 命令 YY 托盘菜单。SHOW 本人还要完善一下,计划是这样:

┣━━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃         │格式│SHOW [硬盘号|标识符][:分区号][,盘符]                                                                                       ┃
┃         ├──┼───────────────────────────────────────────────┨
┃         │功能│显示系统存在的移动硬盘或固定硬盘的隐藏分区,并给这些分区分配盘符。                                          ┃
┃         ├──┼───────────────────────────────────────────────┨
┃         │参数│■硬盘号: 本机中存在的硬盘,"0"表示"hd0","1"表示"hd1","2"表示"hd2",依次类推;                      ┃
┃         │      │■标识符: 表示硬盘类型的标识,固定硬盘用"F"表示,移动硬盘用"R"表示,标识符与硬盘号只取其一;   ┃
┃         │      │■分区号: "0"表示所有还没指派盘符的分区,"1"表示第1分区,"2"表示第2分区,依次类推;                  ┃
┃SHOW│      │■盘   符: 用字母"C~Z"表示(不带":"),省略"盘符"或设置盘符不合理时由 PECMD.EXE 自动分配盘符。   ┃
┃         ├──┼───────────────────────────────────────────────┨
┃         │示例│SHOW 0:1,H 或 SHOW R:1,U 或 SHOW F:0                                                                                  ┃
┃         ├──┼───────────────────────────────────────────────┨
┃         │备注│※某些机型在WinPE启动后已经可以识别移动硬盘,但没有为移动硬盘指派盘符,可以通过 SHOW 命令的 ┃
┃         │      │"R"标识符为移动硬盘分配盘符,示例2表示给"移动硬盘的第1分区"指派为盘符"U:";                           ┃
┃         │      │※示例1表示"硬盘0隐藏分区1"指派为盘符"H:",示例3表示自动为"固定硬盘的所有隐藏分区"指派盘符;   ┃
┃         │      │※要删除指定的盘符可以通过 SUBJ 命令完成,用法请参照 SUBJ 命令的说明。                                    ┃
┣━━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫

省略所有参数时与MM的功能一样。

[ 本帖最后由 lxl1638 于 2007-11-12 01:15 AM 编辑 ]

nn2nn 发表于 2007-11-12 09:31:30

回复 #1149 lxl1638 的帖子

能不能把所有U盘的第一分区的盘符指定为U。

(不是手动)

chenall 发表于 2007-11-12 10:05:35

好强,SHOW
收下了,一直在寻找解决方案。现在终于可以很好的解决了。

oym2007 发表于 2007-11-12 10:37:09

谢了,终于解决隐藏分区了

lxl1638 发表于 2007-11-12 11:42:37

原帖由 oym2007 于 2007-11-12 10:37 AM 发表 http://bbs.wuyou.net/images/common/back.gif
谢了,终于解决隐藏分区了

今天将传上 V2.8.1111.120完善版,给 SHOW 命令加上了丰富的参数(可以 SHOW 出指定的隐藏分区),这个版本不但可以载入隐藏分区中的WIM外置映像,且启动后可保持原隐藏分区的隐藏属性不变,即WinPE的IMG内核和WIM外置都可以部署在隐藏分区,WinPE启动后这个分区仍然是隐藏的。

emca 发表于 2007-11-12 11:49:41

希望同时给出INI文件中的调用命令行参考,这样大家都不必走弯路。

lxl1638 发表于 2007-11-12 11:51:04

红叶大大师,放心,这次同时会上传32M_U盘版WinPE演示。

lxl1638 发表于 2007-11-12 12:50:30

上传完毕,传到了置顶 FTP2 本人 ID 目录中,文件名为 PECMD演示版WinPE.RAR ,压缩包内有说明文件,请先看说明。

本主题 PECMD.EXE 的上传和更新晚上再搞,本主题1楼的PECMD还没有这样的功能。

[ 本帖最后由 lxl1638 于 2007-11-12 12:52 PM 编辑 ]

yd21 发表于 2007-11-12 13:04:23

原来是自己没完整仔细看,才知道托盘图标可以自己YY,呵呵,搞定了,Very Good!

思の凡 发表于 2007-11-12 15:29:31

好东西不错的说

lxl1638 发表于 2007-11-12 17:36:23

PECMD-V2.8.1111.120版再次更新,已上传到本主题的1楼,演示用的WinPE已上传到置顶FTP2本人ID目录中,本次更新的PECMD已解决了将WIM外置包部署到隐藏分区的问题。

oym2007 发表于 2007-11-12 20:44:09

原帖由 lxl1638 于 2007-11-12 05:36 PM 发表 http://bbs.wuyou.net/images/common/back.gif
PECMD-V2.8.1111.120版再次更新,已上传到本主题的1楼,演示用的WinPE已上传到置顶FTP2本人ID目录中,本次更新的PECMD已解决了将WIM外置包部署到隐藏分区的问题。
下载演示包在虚拟机中启动,发现SUBJ命令,把C:盘也隐藏了(PE放在C:盘)

lxl1638 发表于 2007-11-12 21:38:35

本来就是这样的,你也不按说明部署(要求你把PE和WIM外置包部署到隐藏分区)。

这个演示的目的就是启动后隐藏WIM外置包所在的分区,你把它放在哪个分区,就隐藏哪个分区。
但你没有按说明做,把它放在C:盘,自然C:盘也被隐藏了,这很正常。

oym2007 发表于 2007-11-13 12:40:48

原帖由 lxl1638 于 2007-11-12 09:38 PM 发表 http://bbs.wuyou.net/images/common/back.gif
本来就是这样的,你也不按说明部署(要求你把PE和WIM外置包部署到隐藏分区)。

这个演示的目的就是启动后隐藏WIM外置包所在的分区,你把它放在哪个分区,就隐藏哪个分区。
但你没有按说明做,把它放在C:盘,自 ...
我的意思是说,PECMD应主动认别隐藏分区代码,用户分区没有隐藏就不要隐藏它。

lxl1638 发表于 2007-11-13 12:50:19

PECMD的特色是高度的自由,这些功能已经存在了,只是你没有认真看它的说明。
建议你慢慢理解PECMD 每一条命令的功能、参数及它的用途。

你把内部配置文件中的这一行:

SUBJ %WimDrv%

删掉,就是你要的了---- 一个分区是否需要隐藏,完全由你自己来决定,PECMD就是高度自由,一切由用户自己设置、自己定义,这就是它的特色。

oym2007 发表于 2007-11-13 20:40:38

原帖由 lxl1638 于 2007-11-13 12:50 PM 发表 http://bbs.wuyou.net/images/common/back.gif
PECMD的特色是高度的自由,这些功能已经存在了,只是你没有认真看它的说明。
建议你慢慢理解PECMD 每一条命令的功能、参数及它的用途。

你把内部配置文件中的这一行:

SUBJ %WimDrv%

删掉,就是你要的 ...
谢谢大师的回答,可能是我没说清楚,我想说的是PE的通用性,人人去修改INI文件,对普及不利,最好是SHOW能自动识别

oym2007 发表于 2007-11-14 10:18:52

再度在虚拟机中测试演示包,将整个PE放在最后分区并隐藏,启动PE后,整个硬盘全不见了
去掉 SUBJ 后 硬盘可见
页: 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47
查看完整版本: [PECMD X86 & X64 V4.0.2011.0501版] WinPE命令解释程序 & WinPE登录命令。