无忧启动论坛

标题: 请教一个关于PECMD的问题 [打印本页]

作者: 木石前盟    时间: 2007-3-28 16:18
标题: 请教一个关于PECMD的问题
这几天把老毛桃的最新PE光盘下载下来研究了研究,把WINPE.ini好好看了看,里面有两句不太明白,请教一下老毛桃等各位高手

第一句是:
TEAM EXEC !=CMD.EXE /C ECHO FOR %%I IN (C D E F G H I J K L M N O P Q R S T) DO IF EXIST %%I:\PAGEFILE.SYS PECMD LINK %Temp%\RPT_OK,%SystemRoot%>%TEMP%\RPT_OK.CMD|EXEC !=%TEMP%\RPT_OK.CMD

前面的好理解,先默认执行CMD.exe,然后从硬盘各个分区查找PE的虚拟内存,但后面几句不太明白,
PECMD LINK %Temp%\RPT_OK,%SystemRoot%>%TEMP%\RPT_OK.CMD|EXEC !=%TEMP%\RPT_OK.CMD
这是什么意思,是在临时目录下生成一个RPT_OK的快捷方式,指向%SystemRoot%>%TEMP%\RPT_OK.CMD,然后运行RPT_OK.CMD吗?但这个RPT_OK.CMD在那里?我打开光盘找了半天也没有找到,把WINPE.ISO解压出来也没有找到,另外,加个PECMD是什么意思,请教一下高手

第二句是:
IFEX %Temp%\RPT_OK.LNK,LINK %Temp%\RPT_OK60,%SystemRoot%!IFEX MEM>60,LINK %Temp%\RPT_OK60,%SystemRoot%

同样没太搞明白,高手给解释一下,谢谢了
作者: tuxw    时间: 2007-3-28 16:55
通过 echo 命令在 %temp% 生成一个 CMD 文件,然后运行它
这个 CMD 文件的功能是在各个盘上查找 pagefile.sys,如果找到,就在 %TEMP% 下生成一个文件以标志 CMD 的执行结果,这个文件是什么无所谓,因为后面只是通过判断这个文件是否存来确定有没有找到 pagefile.sys 而已。

你迷惑的可能是因为他是一个快捷方式,实际上这个快捷方式不是用来运行的
如果你愿意,也可以用其它方式来生成一个任意的文件,比如用 copy nul  temp.dat
那么以后就可以通过判断 temp.dat 是否存在来确定虚拟内存是否设置成功

理想的方式是找到 pagefile.sys 后设置一个环境变量,但目前还没有做到这一点,因为 CMD 中设置的环境变量要启动后刷新才生效,在配置文件中不能马上使用,所以老毛桃采用了生成一个文件来判断的曲线救国方式
(最好的方式是有办法检测 PAGE 命令的返回值,目前做不到)

这种判断虚拟内存是否设置的方法要在设置虚拟内存前先删已有的pagefile.sys文件,这也是老毛桃配置中先清理上次启动设置的页面文件的原因

后面一句就引用了前面的结果,作用如下
如果设置了虚拟内存,或可用内存>60,再成一个文件(原理、作用相同,用于以后加载外置程序时的条件判断)

以上方法就是间接的检查系统的配置情况,且于判断可以加载多少需要安装的外置程序到 X 盘

[ 本帖最后由 tuxw 于 2007-3-28 05:07 PM 编辑 ]
作者: 木石前盟    时间: 2007-3-28 17:10
谢谢了先,但还不是很明白,我知道用COPY可以生成一个文件,但ECHO还不知道有这个功能,按你的意思来说,是用ECHO命令生成RPT_OK.cmd这个文件,那它里面的命令是不是这样
FOR %%I IN (C D E F G H I J K L M N O P Q R S T) DO
   IF EXIST %%I:\PAGEFILE.SYS PECMD LINK %Temp%\RPT_OK,%SystemRoot%>%TEMP%\RPT_OK.CMD|EXEC !=%TEMP%\RPT_OK.CMD
是这样吗,还是不太明白
作者: tinyhe    时间: 2007-3-29 09:14
是的
ECHO FOR %%I IN (C D E F G H I J K L M N O P Q R S T) DO IF EXIST %%I:\PAGEFILE.SYS PECMD LINK %Temp%\RPT_OK,%SystemRoot%>%TEMP%\RPT_OK.CMD
生成RPT_OK.CMD这个批处理,然后通过EXEC !=%TEMP%\RPT_OK.CMD,执行它
作者: 木石前盟    时间: 2007-3-29 11:34
谢谢了,基本上明白了




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3