无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: lxl1638
打印 上一主题 下一主题

[PECMD X86 & X64 V4.0.2011.0501版] WinPE命令解释程序 & WinPE登录命令。

    [复制链接]
1201#
发表于 2007-12-9 18:55:51 | 只看该作者
原帖由 菜刀 于 2007-12-9 06:21 PM 发表


2.9.1114.688版和2.9.1127.488版是不是这样?


这两个版本都不正常.
只能显示出一个.
我再用showdrive.exe可以显示出另外一个.
回复

使用道具 举报

1202#
 楼主| 发表于 2007-12-9 19:03:09 | 只看该作者
本人以后再试验一下,现在硬盘的电源线给本人拉坏了一半,前天拆硬盘时连硬盘的电源线插头都拉断了,只挂上一个硬盘(另一个硬盘无法挂了),才3个分区,很难试验。
回复

使用道具 举报

1203#
发表于 2007-12-13 13:14:02 | 只看该作者
SUBJ要是把光驱的盘符也卸了,用SHOW就显不出来了!!!(PECMD是最新逆加载版),.软驱的卸了也一样的SHOW不出来!
回复

使用道具 举报

1204#
 楼主| 发表于 2007-12-13 15:46:28 | 只看该作者
原帖由 aoskas 于 2007-12-13 01:14 PM 发表
SUBJ要是把光驱的盘符也卸了,用SHOW就显不出来了!!!(PECMD是最新逆加载版),.软驱的卸了也一样的SHOW不出来!
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃      │格式│SHOW [硬盘号|标识符][:分区号][,盘符]                                                                                    ┃
┃      ├──┼──────────────────────────────────────────────┨
┃      │功能│显示系统存在的移动硬盘或固定硬盘的隐藏分区,并给这些分区分配盘符。                                       ┃
┃      ├──┼──────────────────────────────────────────────┨


SHOW命令的功能已有说明,说明中只提到移动硬盘或固定硬盘,没有提到光驱和软驱。
回复

使用道具 举报

1205#
发表于 2007-12-17 11:25:55 | 只看该作者
楼主,pecmd的显示隐藏分区功能是不是不能显示0x12的隐藏分区?另外,pecmd不能在XP下运行,showdrive能否在XP下独立运行?
回复

使用道具 举报

1206#
 楼主| 发表于 2007-12-17 12:04:23 | 只看该作者
XENIX 分区?

是的,只SHOW出Windows支持的常见分区类型(FAT32、NTFS)。
另外PECMD不能的XP运行?不会吧?你双击它没有反应?

PECMD有些命命是不能在正常系统中使用的,这些命令是针对WinPE初始化用的,也有可能在正常系统中使用这些命令会引起系统注册表混乱。
回复

使用道具 举报

1207#
发表于 2007-12-18 10:04:30 | 只看该作者
原帖由 lxl1638 于 2007-12-17 12:04 PM 发表
XENIX 分区?

是的,只SHOW出Windows支持的常见分区类型(FAT32、NTFS)。
另外PECMD不能的XP运行?不会吧?你双击它没有反应?

PECMD有些命命是不能在正常系统中使用的,这些命令是针对WinPE初始化用的, ...


0x12是EISA分区,其实就是一个FAT32分区,只是分区id不同而已,现在很多新的一键恢复都使用这样的分区格式,希望下个版本能够支持;
我在XP使用PECMD /show后隐藏分区没有出来,我只是要显示隐藏分区,呵呵。
回复

使用道具 举报

1208#
发表于 2007-12-18 19:29:03 | 只看该作者
我希望有个功能

logo 或者 shel 或者 wall 有个参数,或者新的指令

能够让 logon 过程切换到桌面的效果可以关掉

那个渐变(淡出淡入)的确好看,

我只是希望能够提供这个功能

命令行里面有没有类似于 goto 或者 do{}while 之类的东西呢

要是有的话就好了
回复

使用道具 举报

1209#
 楼主| 发表于 2007-12-18 21:45:17 | 只看该作者
goto 用 CALL 实现,goto 是写程序时是不提倡的,不方便代码阅读。
do{}while 也用 CALL 实现,本人上传的脚本中有循环控制演示。

CALL 命令支持递归调用。

[ 本帖最后由 lxl1638 于 2007-12-18 09:50 PM 编辑 ]
回复

使用道具 举报

1210#
发表于 2007-12-26 22:30:00 | 只看该作者
顶下,楼主好
回复

使用道具 举报

1211#
发表于 2008-1-9 21:06:29 | 只看该作者
2.91127.488版本...

使用MESS做選擇分頁檔案置與否的功能...不管選擇點選 " 是 " 或是 " 否 "...$YESNO都會是YES...

導致選擇 " 否 " 後...還是會叫你選擇分頁檔案放置的位置...

把PECMD換成舊版本後...就可以正常使用了...

請老九確認2.91127.488版本是否有問題?
回复

使用道具 举报

1212#
发表于 2008-1-9 21:16:59 | 只看该作者
抱歉...發現我沒看請楚說明...

3、修改了 IFEX 命令中带前导符 $ 的功能,IFEX $ 用于数值变量判断,
     FIND $ 用于环境变量判断;

修改後已可以正常使用...
回复

使用道具 举报

1213#
发表于 2008-1-11 22:29:10 | 只看该作者
关于PECMD的一个问题.
PECMD的一个配置文件(包括在配置文件中LOAD的配置文件)
里面不可以用两个以上的LOGS

比如A.INI
LOGS X:\TEST.LOG
//其它内容
LOAD B.INI
LOGS
//其它语句
B.INI
LOGS X:\TEST2.LOG
//语句
LOGS
执行时,到第二个LOGS后就停下来了(LOGS X:\TEST2.LOG).后面的语句并没有执行.
回复

使用道具 举报

1214#
 楼主| 发表于 2008-1-12 12:14:22 | 只看该作者
没有考虑过需要这样使用日志记录的,PECMD在执行LOGS命令关闭日志后回收了日志记录申请的内存,再开日志就无效了。
回复

使用道具 举报

1215#
发表于 2008-1-12 14:27:26 | 只看该作者
发现一个问题:

使用BROW命令后,TARGET_ROOT变量中有一个问题:

1.当我在BROW命令中指定一个根目录例如“x:\”则TARGET_ROOT变量中保存的为“x:\”。

2.当我在BROW命令中指定一个普通目录例如“x:\temp”则TARGET_ROOT变量中保存的为“x:\temp”。

注意1和2的差别,1中多了个“\”,如果我使用以下格式

%TARGET_ROOT%\a.txt 则在BROW中指定根目录时,回返回x:\\a.txt的错误路径。老九兄是编程老手,应该知道问题所在了吧。
回复

使用道具 举报

1216#
发表于 2008-1-13 00:03:22 | 只看该作者
请问老九:

3、修改了 IFEX 命令中带前导符 $ 的功能,IFEX $ 用于数值变量判断,FIND $ 用于环境变量判断;



我这样理解导底是否正确:

用不带$的ENVI声明的变量是数值变量,而带$的ENVI声明的变量是环境变量?


不要叫我看pecmd的自带说明,你那关于ENVI命令的说明很含糊。用的是“系统级环境变量”和“内部使用的环境变量”这两个名词,看得我都糊涂了。


建议在pecmd的说明里详细解释一下“系统级环境变量”、“内部使用的环境变量”、“数值变量”、“环境变量”这四个名词的区别和意义。

[ 本帖最后由 ls_qiang 于 2008-1-13 12:12 AM 编辑 ]
回复

使用道具 举报

1217#
发表于 2008-1-13 00:09:51 | 只看该作者
另外,ifex和find的比较符最好增加个“不等于”,这个比较符是很有用的啊。
回复

使用道具 举报

1218#
 楼主| 发表于 2008-1-13 00:15:45 | 只看该作者
原帖由 zjqcomputer 于 2008-1-12 02:27 PM 发表
现一个问题:

使用BROW命令后,TARGET_ROOT变量中有一个问题:

1.当我在BROW命令中指定一个根目录例如“x:\”则TARGET_ROOT变量中保存的为“x:\”。

2.当我在BROW命令中指定一个普通目录例如“x:\temp”则TARGET_ROOT变量中保存的为“x:\temp”。

注意1和2的差别,1中多了个“\”,如果我使用以下格式

%TARGET_ROOT%\a.txt 则在BROW中指定根目录时,回返回x:\\a.txt的错误路径。老九兄是编程老手,应该知道问题所在了吧。


x:\\a.txt这样的表达好象是错的,但你试验后就发现,只要是微软的Windows系统,
x:\\a.txt = x:\a.txt

不信你就在试试:
1、开始菜单的运行处输入 C:\\BOOT.INI
2、开始菜单的运行处输入 notepad.exe C:\\BOOT.INI
3、建一个CMD批处理,批处理内容为 notepad.exe C:\\BOOT.INI
看看会怎样?你又把上面的 C:\\BOOT.INI 改成 C:\\\\\\\\\\\\\\\\\\\\BOOT.INI 试试,你会发现很有趣。
以前本人曾经发过与此相关的帖子,只是理解的人少,重视的人少而已。更变态:
C:\\\\windows\\\\system32\\\\\\\\notepad.exe C:\\\\\\\\\\BOOT.INI

结论:多一个 "\" 不影响使用,只要在 Windows 下才行,纯DOS没有试验过。

[ 本帖最后由 lxl1638 于 2008-1-13 12:41 AM 编辑 ]

未命名.PNG (20.9 KB, 下载次数: 168)

未命名.PNG
回复

使用道具 举报

1219#
 楼主| 发表于 2008-1-13 00:27:10 | 只看该作者
原帖由 ls_qiang 于 2008-1-13 12:03 AM 发表
请问老九:


我这样理解导底是否正确:

用不带$的ENVI声明的变量是数值变量,而带$的ENVI声明的变量是环境变量?


不要叫我看pecmd的自带说明,你那关于ENVI命令的说明很含糊。用的是“系统级环 ...



NO,你下载本人的循环控制脚本看看。

一切变量在用户的INI文件中都是字符串,ENVI命令的前导符"$"表示设置的是系统级环境变量。
如:

ENVI V1=12345
若用 IFEX 命令的 $ 前导引用 %V1%,则 %V1%作数值处理
示例:IFEX $%V1%>10000,........ ! ...........

若用 FIND 命令的 $ 前导引用 %V1%,则 %V1%作字符处理

FIND、IFEX命令都有执行条件不成立的功能,你认真看看说明。
回复

使用道具 举报

1220#
 楼主| 发表于 2008-1-13 00:29:40 | 只看该作者
原帖由 ls_qiang 于 2008-1-13 12:09 AM 发表
另外,ifex和find的比较符最好增加个“不等于”,这个比较符是很有用的啊。


IFEX  条件, 命令1 ! 命令2
FIND  条件, 命令1 ! 命令2

省掉 命令1 ,即写成:

IFEX  条件,  !命令2
FIND  条件, !命令2
命令2就是你想做的事了。
回复

使用道具 举报

1221#
发表于 2008-1-13 00:31:22 | 只看该作者
谢谢老九的解答。

最后,还建议在pecmd的说明文件里规范地说明一下error、TARGET_ROOT、TARGET_DRIVE等会被命令创建的变量是“系统级”还是“内部使用的",例如:对于TARGET_DRIVE变量,pecmd的说明文件里竟然用一个“进程环境变量”来说明,那又代表什么呢?初学者很难上手啊。

[ 本帖最后由 ls_qiang 于 2008-1-13 12:32 AM 编辑 ]
回复

使用道具 举报

1222#
 楼主| 发表于 2008-1-13 00:38:36 | 只看该作者
原帖由 ls_qiang 于 2008-1-13 12:31 AM 发表
谢谢老九的解答。

最后,还建议在pecmd的说明文件里规范地说明一下error、TARGET_ROOT、TARGET_DRIVE等会被命令创建的变量是“系统级”还是“内部使用的",例如:对于TARGET_DRIVE变量,pecmd的说明文件里竟 ...


你可以将它转存为一个系统级的环境变量,如:

ENVI $MY_ROOT=%TARGET_ROOT%

这样新变量%MY_ROOT%就是系统级的了,启动后任何进程都可以使用。
在PECMD中之所以不把这些设置成系统级环境变量,就是为了让用户按需设置,需要才设置,不需要能省就省。
回复

使用道具 举报

1223#
发表于 2008-1-13 00:44:45 | 只看该作者
这么夜了,老九还在工作。


现都在明白了,谢谢你的解答。
回复

使用道具 举报

1224#
发表于 2008-1-13 02:27:41 | 只看该作者
看来PE又有新鲜血液了,感谢老九 作品!
回复

使用道具 举报

1225#
发表于 2008-1-13 12:08:25 | 只看该作者
原帖由 lxl1638 于 2008-1-13 12:15 AM 发表


x:\\a.txt这样的表达好象是错的,但你试验后就发现,只要是微软的Windows系统,
x:\\a.txt = x:\a.txt

不信你就在试试:
1、开始菜单的运行处输入 C:\\BOOT.INI
2、开始菜单的运行处输入 notepad.e ...



恩,果然如老九所说..............受教了.


不过,我觉得这样做很不规范的说,特别是编程时,不知会不会给程序留下什么隐患.....
回复

使用道具 举报

1226#
 楼主| 发表于 2008-1-13 12:25:47 | 只看该作者
原帖由 zjqcomputer 于 2008-1-13 12:08 PM 发表



恩,果然如老九所说..............受教了.

不过,我觉得这样做很不规范的说,特别是编程时,不知会不会给程序留下什么隐患.....


在设计 PECMD.EXE 的 BROW 命令时就曾考虑过是否要将  BROW 的 X:\ 变为 X: ,
试验过后发现好象没有必要了。

隐患?PECMD.EXE本身肯定是不会存在的,CMD.EXE批处理也不会存在,其它程序就不敢肯定了。
回复

使用道具 举报

1227#
发表于 2008-1-13 16:34:53 | 只看该作者
再提两个问题:

1.PAGE命令不论是否设置成功,都不会改变ERROR的值。
我知道PAGE有搜索功能,但如果PAGE搜索所有的盘后都没有找到一个合适设置页面文件的盘时,就会不设置虚拟内存,这时明明是设置失败但不会通过ERROR返回一个值。


2.PAGE命令执行后不会马上在目标盘上出现页面文件。
如果在PAGE命令之后紧跟着用ifex命令判断页面文件是否存在总是FALSE.
但用毛桃的以下方法却能判断出来:
TEAM EXEC !=CMD.EXE /C ECHO IF EXIST %TARGET_DRIVE%\%PF% PECMD LINK
%Temp%\RPT_OK,%WinDir%>%TEMP%\RPT_OK.CMD|EXEC !=%TEMP%\RPT_OK.CMD
终于明白毛桃为什么要搞这么麻烦来判断虚拟内存。
回复

使用道具 举报

1228#
 楼主| 发表于 2008-1-13 18:34:15 | 只看该作者
原帖由 zjqcomputer 于 2008-1-13 04:34 PM 发表
再提两个问题:

1.PAGE命令不论是否设置成功,都不会改变ERROR的值。
我知道PAGE有搜索功能,但如果PAGE搜索所有的盘后都没有找到一个合适设置页面文件的盘时,就会不设置虚拟内存,这时明明是设置失败但不会通 ...


等有空本人再测试看看,如果实在需要,春节后翻新。
回复

使用道具 举报

1229#
 楼主| 发表于 2008-1-13 18:44:21 | 只看该作者
刚查了源码,PAGE 命令执行成功与否,会写入日志记录,但%Error% 都为 0 。
回复

使用道具 举报

1230#
发表于 2008-1-13 21:43:40 | 只看该作者
原帖由 lxl1638 于 2008-1-13 12:15 AM 发表


x:\\a.txt这样的表达好象是错的,但你试验后就发现,只要是微软的Windows系统,
x:\\a.txt = x:\a.txt

不信你就在试试:
1、开始菜单的运行处输入 C:\\BOOT.INI
2、开始菜单的运行处输入 notepad.e ...

是有这种情况,是MS的容错能力吧。同时也提供专门去除最后“\”的函数。

(但也有程序解释为:最后是“\”为目录,否则是文件级。(相差一级目录,在复制和删除时是不同的))
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-24 05:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表