沙漠之子 发表于 2007-1-23 15:09:51

希望qinjg8008大大也能来完善XCMD,减小体积

另:关于锁定SHELL希望在配制文件中设定,因为本人有时没了减少内存手工关闭explorer.exe的说

Yonsm 发表于 2007-1-23 15:12:04

原帖由 lxl1638 于 2007-1-23 03:02 PM 发表


比如说什么时候或什么样的设置需要用到?
在XCDM中加?XCMD已不是控制台命令了,加上也没多大作用,因为可用内存是时刻变的,XCMD可以将可用内存写到注册表或环境变量,但你需要用到这些数据时,可能已发生了 ...

我有个想法没有去实现,不知道老九有没有兴趣:就是在命令前加上条件判断,决定是否执行。比如:

?Free(Mem)<64 PAGE C:\PageFile.sys 100
?Free(X:\)<2 FILE NTOSKNRL.EXE
?Exist(X:\Tools\WinRAR\WinRAR.exe) ***************

等等,条件判断可以增加,比如判断已经用了多少内存,有多少内存空闲,文件是否存在,磁盘可写空间有多少,分辨率是多少等等

支持== < <= > >= != 这几种比较操作符,和默认[==TRUE]的判断(如 Exist 函数)

Yonsm 发表于 2007-1-23 15:14:21

原帖由 lxl1638 于 2007-1-23 03:05 PM 发表


是的,本人调试时也发现UDirCreate会少建立一级目录。

因为新版本的 UDirCreate 改动过,但这处没改过来,导致这个问题。
不过 Link 命令似乎不会出现问题吧?

不过,如果 %USERPROFILE%目录已经创建的话,这个问题不会出现:

if (SHGetSpecialFolderPath(NULL, p, c_sMacro.iFolder, TRUE))

因为这里指定了会创建目录,不过我很莫名其妙的是 MS 的 SHGetSpecialFolderPathAPI竟然因为这种原因没能创建目录。

[ 本帖最后由 Yonsm 于 2007-1-23 03:21 PM 编辑 ]

lxl1638 发表于 2007-1-23 15:20:17

原帖由 Yonsm 于 2007-1-23 03:12 PM 发表


我有个想法没有去实现,不知道老九有没有兴趣:就是在命令前加上条件判断,决定是否执行。比如:

?Free(Mem)<64 PAGE C:\PageFile.sys 100
?Free(X:\)<2 FILE NTOSKNRL.EXE
?Exist(X:\Tools\WinRA ...

你慢慢搞吧,本人觉得目前的功能已够用了,个人认为需要修改的就是 PAGE 命令,比如
1、发现要设置页文件的磁盘不存在或不是硬盘分区(U盘、移动硬盘、光驱),再查找其它有用可用的硬盘分区来设置页文件;
2、PAGE 命令根据可用内存的大小作简单的判断,如 PAGE C:\PageFile.sys 128 表示可用内存小于128M时建立128M页文件,因为本人这样的机子无需建立页文件,在配置文件中也没有这个命令,但同样的配置文件拿到其它机子用可能有问题

[ 本帖最后由 lxl1638 于 2010-10-14 00:18 编辑 ]

沙漠之子 发表于 2007-1-23 15:23:08

不知能否实现关闭系统时删除页面文件

lxl1638 发表于 2007-1-23 15:27:44

原帖由 沙漠之子 于 2007-1-23 03:09 PM 发表
希望qinjg8008大大也能来完善XCMD,减小体积

另:关于锁定SHELL希望在配制文件中设定,因为本人有时没了减少内存手工关闭explorer.exe的说

减小体积的意义目前不大,若能减少占用内存的话才有意义,压缩一下应是40K左右,40K文件与20K文件在压缩的NTFS分区中没多大差别.

triquan 发表于 2007-1-23 16:35:42

原帖由 lxl1638 于 2007-1-23 03:20 PM 发表


你慢慢搞吧,本人觉得目前的功能已够用了,个人认为需要修改的就是 PAGE 命令,比如
1、发现要设置页文件的磁盘不存在或不是硬盘分区(U盘、移动硬盘、光驱),再查找其它有用可用的硬盘分区来设置页文件;
2 ...

我发现PAGE是可能用环境变量%CurDrv%的,只要把命令列在外部xcmd.ini里,然后想在哪个分区设虚拟内存,就把列有PAGE命令的xcmd.ini和外置程序放在这个分区的根目录就行了。

wchf2 发表于 2007-1-23 16:39:46

原帖由 lxl1638 于 2007-1-23 03:27 PM 发表


减小体积的意义目前不大,若能减少占用内存的话才有意义,压缩一下应是40K左右,40K文件与20K文件在压缩的NTFS分区中没多大差别.


减少占用内存,这个我也有个想法,1月9日的acoa 版PE里面打开taskmgr查看,最多内存占用是EXPLORER.EXE,12M左右, XCMD.INI中注释掉它,换bblean(或bbclean)即可,程序可外置,内存占用可控制在2M以内,(若更加激进的话还可把IMG中EXPLORER相关文件去掉),唯一不爽的是"关机"与"重起"命令失效,我只好用直接按机箱"RESET"键代替.
XCMD.INI中
//EXEC $EXPLORER.EXE
EXEC !%CurDrv%\外置程序\bbcLean\blackbox.exe

再有,xcmd.exe也占用6M左右内存,1月9日的acoa 版PE里面可KILL掉它,

XCMD.INI中最后加上一行



KILL XCMD
就 ok 了,
可惜RXPE中以上是行不通的,会导致直接重起.

谢谢各位专家支招,小问题已解决如下:

谢谢YouSm老大提醒,使用EXEC !$%CurDrv%\外置程序\bbcLean\blackbox.exe,后关机正常了

谢谢楼下沙漠之子,RXPE中这样KILL xcmd成功

WAIT 5000
KILL SMSS
KILL WINLOGON
KILL XCMD

[ 本帖最后由 wchf2 于 2007-1-23 06:44 PM 编辑 ]

沙漠之子 发表于 2007-1-23 16:52:38

原帖由 wchf2 于 2007-1-23 04:39 PM 发表

减少占用内存,这个我也有个想法,1月9日的acoa 版PE里面打开taskmgr查看,最多内存占用是EXPLORER.EXE,12M左右, XCMD.INI中注释掉它,换bblean(或bbclean)即可,程序可外置,内存占用可控制在2M以内,(若更加激 ...
我用过bblean,不过不太习惯的说
kill是有顺序的
KILL SMSS.EXE
KILL WINLOGON.EXE
KILL XCMD

Yonsm 发表于 2007-1-23 16:59:33

原帖由 triquan 于 2007-1-23 04:35 PM 发表


我发现PAGE是可能用环境变量%CurDrv%的,只要把命令列在外部xcmd.ini里,然后想在哪个分区设虚拟内存,就把列有PAGE命令的xcmd.ini和外置程序放在这个分区的根目录就行了。


所以说啦……
发挥自己想想享乐和推理能力,说实话这种用法我也没想到。

Yonsm 发表于 2007-1-23 17:03:15

原帖由 wchf2 于 2007-1-23 04:39 PM 发表
唯一不爽的是"关机"与"重起"命令失效

这个,可以尝试一下 EXEC $ 加载 Shell,如果 Shell 不是Exeplorer.exe,可以修改退出代码处,让它执行 ExitWindowsEx(会转到调用 XCMD SHUT,不会改的话,可以给我看看), Shell

zhaohj 发表于 2007-1-23 17:27:17

原帖由 realhyg 于 2007-1-23 12:13 PM 发表
zhaohj兄,能否说一下在YONSM1.14版+FBWF中如何处理XCMD.INI的,我直接替换yonsm原版中的xcmd.exe后,出现循环加载XCMD.INI的情况。
想把XCMD.INI外置,我只保留原来的LOAD \XCMD.INI一句却无法加载C盘下的XCMD ...

出现循环加载XCMD.INI的情况,可能不是这样的,是不是没有出现桌面?应该是EXEC $%SystemRoot%\\EXPLORER.EXE,在原版RXPE目录下没有EXPLORER.EXE吧,所以一直在等这个命令执行,改成EXEC $%SystemRoot%\syetem32\EXPLORER.EXE。所以,很多情况都是路径引起的。

wchf2 发表于 2007-1-23 17:33:47

曾经KILL掉xcmd后,使用批处理文件加载命令行参数,执行“XCMD.EXE SHUT”却实现了"重启",而执行“XCMD.EXE SHUT R”也是"重启",很纳闷.......


可这样重启后总是会出现磁盘扫描,且发现有错误,后来发现直接按"RESET"键重启却不会提示扫描,更加纳闷.......

另外,谢谢YouSm老大提醒,使用EXEC !$%CurDrv%\外置程序\bbcLean\blackbox.exe,后关机正常了:lol:lol:lol

[ 本帖最后由 wchf2 于 2007-1-23 06:32 PM 编辑 ]

hlkaicx 发表于 2007-1-23 17:46:00

不顶不行哦~~

Yonsm 发表于 2007-1-23 17:52:40

原帖由 zhaohj 于 2007-1-23 05:27 PM 发表


出现循环加载XCMD.INI的情况,可能不是这样的,是不是没有出现桌面?应该是EXEC $%SystemRoot%\\EXPLORER.EXE,在原版RXPE目录下没有EXPLORER.EXE吧,所以一直在等这个命令执行,改成EXEC $%SystemRoot%\syet ...

没有执行成功不会等待的。
另外,EXEC 会自动搜索路径的。

递归调用是因为 LOAD 命令发生改变了,我特地在新版本用用红色说明了变化。
最好不要再用 LOAD XCMD.INI 这样的,而是改成 LOAD \XCMD.INI,或者 LOAD \外部程序\XXX.INI 等等

realhyg 发表于 2007-1-23 17:55:00

原帖由 zhaohj 于 2007-1-23 05:27 PM 发表


出现循环加载XCMD.INI的情况,可能不是这样的,是不是没有出现桌面?应该是EXEC $%SystemRoot%\\EXPLORER.EXE,在原版RXPE目录下没有EXPLORER.EXE吧,所以一直在等这个命令执行,改成EXEC $%SystemRoot%\syet ...
桌面出现了的

triquan 发表于 2007-1-23 17:55:54

原帖由 zhaohj 于 2007-1-23 05:27 PM 发表


出现循环加载XCMD.INI的情况,可能不是这样的,是不是没有出现桌面?应该是EXEC $%SystemRoot%\\EXPLORER.EXE,在原版RXPE目录下没有EXPLORER.EXE吧,所以一直在等这个命令执行,改成EXEC $%SystemRoot%\syet ...

xcmd.ini可以改名的,如xcmd_in.ini,xcmd_out.ini。我是这样来区分内外配置的。虽然在xlog里显示“功能未实现”,其实已经可以这样用了!

realhyg 发表于 2007-1-23 17:56:11

原帖由 Yonsm 于 2007-1-23 05:52 PM 发表


没有执行成功不会等待的。
另外,EXEC 会自动搜索路径的。

递归调用是因为 LOAD 命令发生改变了,我特地在新版本用用红色说明了变化。
最好不要再用 LOAD XCMD.INI 这样的,而是改成 LOAD \XCMD.INI,或 ...
就是用的LOAD \XCMD.INI,有\的

triquan 发表于 2007-1-23 18:00:14

原帖由 realhyg 于 2007-1-23 05:56 PM 发表

就是用的LOAD \XCMD.INI,有\的

我的就没有\ ,从来都没出错过!查看一下其它分区的根目录会不会有同名的xcmd.ini,因xcmd会自动搜索动它们,所以容易出错。最简单的方法就是改名!

抱歉,说错了,修正一下,是内部xcmd.ini不用在前加“\”,外部的还是必需加“\”的。

[ 本帖最后由 triquan 于 2007-1-23 07:14 PM 编辑 ]

hongshow 发表于 2007-1-23 18:01:14

支持。。。

lxl1638 发表于 2007-1-23 18:17:01

建议一切以YY版为源头的修改版参考一下1楼的内部配置文件。

strongchen 发表于 2007-1-23 18:36:20

原帖由 lxl1638 于 2007-1-23 03:02 PM 发表


比如说什么时候或什么样的设置需要用到?
在XCDM中加?XCMD已不是控制台命令了,加上也没多大作用,因为可用内存是时刻变的,XCMD可以将可用内存写到注册表或环境变量,但你需要用到这些数据时,可能已发生了 ...

我在启动过程调用cmd文件,根据可用内存的数量决定是resizeB盘大小,还是直接用硬盘上的目录映射成B盘。。

l1982012800 发表于 2007-1-23 20:32:50

求助老九,为什么我的开始/程序中是空的

沙漠之子 发表于 2007-1-23 21:08:49

能否加入关闭pe时有"关闭并弹出光盘选项"

zzoym 发表于 2007-1-23 21:11:45

原帖由 lxl1638 于 2007-1-23 06:17 PM 发表
建议一切以YY版为源头的修改版参考一下1楼的内部配置文件。
启动出现

Yonsm 发表于 2007-1-23 21:15:49

原帖由 l1982012800 于 2007-1-23 08:32 PM 发表
求助老九,为什么我的开始/程序中是空的

// 设置系统用户文件夹路径
//REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common AppData=%ALLUSERSPROFILE%\Application Data
//REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common Desktop=%ALLUSERSPROFILE%\桌面
//REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common Favorites=%ALLUSERSPROFILE%\Favorites
//REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common Programs=%ALLUSERSPROFILE%\「开始」菜单\程序
//REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common Start Menu=%ALLUSERSPROFILE%\「开始」菜单
//REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common Startup=%ALLUSERSPROFILE%\「开始」菜单\程序\启动
//REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common Templates=%ALLUSERSPROFILE%\Templates

triquan 发表于 2007-1-23 21:21:47

原帖由 l1982012800 于 2007-1-23 08:32 PM 发表
求助老九,为什么我的开始/程序中是空的

这是因为没有正确创建系统目录。最佳解决方法是引导进入PE后,在PE下打开注册表编辑器,加载software配置单元,在此单元中创建系统目录项,并保存。然后替换原winimage.im_里的sofeware。下面附近是系统目录注册信息,请用如下方法修改:
  1、用需修改的winimage.im_引导进入PE环境(必需这样sofewre才能加载!),打开注册表编辑器,
  2、把X:\I386\SYSTEM32\CONFIG目录下的SOFEWARE加载到注册表HKEY_USERS目录下,
  3、点击附件中的UserShellFolder.reg文件,添加注册信息,(注:到这里可能要刷新一下注册表)
  4、保存修改后的配置单元,文件仍为SoftWare。或直接卸载后,到X:\I386\SYSTEM32\CONFIG目录复制(因已自动保存)。
  5、用修改后的SofeWare替换WinImage.IM_中的同名文件。完全!

[ 本帖最后由 triquan 于 2007-1-23 09:35 PM 编辑 ]

triquan 发表于 2007-1-23 21:26:20

原帖由 zzoym 于 2007-1-23 09:11 PM 发表

启动出现

这是命令执行顺序问题。我出现过同样现象。请自已调试一下顺序,或参照我在
76楼列出的顺序!

lxl1638 发表于 2007-1-23 21:27:27

原帖由 zzoym 于 2007-1-23 09:11 PM 发表

启动出现
你的不是YY版,要研究过才好说话

lxl1638 发表于 2007-1-23 21:32:17

原帖由 strongchen 于 2007-1-23 06:36 PM 发表


我在启动过程调用cmd文件,根据可用内存的数量决定是resizeB盘大小,还是直接用硬盘上的目录映射成B盘。。

用RAMD命令的P参数也基本可以了,以可用内存的百分数来分配Ramdisk(B的大小),你无非是想可用内存大的设置B盘也大些,可用内存小的设置B盘也小些而已
页: 1 2 3 [4] 5 6 7 8 9 10 11 12 13
查看完整版本: [PECMD X86 & X64 V4.0.2011.0501版] WinPE命令解释程序 & WinPE登录命令。