无忧启动论坛

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

请教一个关于PECMD的问题

[复制链接]
跳转到指定楼层
1#
发表于 2007-3-28 16:18:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这几天把老毛桃的最新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%

同样没太搞明白,高手给解释一下,谢谢了
2#
发表于 2007-3-28 16:55:11 | 只看该作者
通过 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 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2007-3-28 17:10:59 | 只看该作者
谢谢了先,但还不是很明白,我知道用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
是这样吗,还是不太明白
回复

使用道具 举报

4#
发表于 2007-3-29 09:14:39 | 只看该作者
是的
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,执行它
回复

使用道具 举报

5#
 楼主| 发表于 2007-3-29 11:34:01 | 只看该作者
谢谢了,基本上明白了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-7-30 11:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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