无忧启动论坛

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

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

    [复制链接]
1441#
 楼主| 发表于 2008-6-19 23:20:31 | 只看该作者
原帖由 jzdai0903 于 2008-6-19 11:15 PM 发表
TO 老九

剛剛下載你最新修正的版本測試...

問題幾乎都沒了...

不過有一個地方有問題...

我第一個下拉式選單控件視窗...選擇自定義加載模式後...你上面貼的圖那一個控件視窗不會跑出來...

我反覆 ...


EXEC 命令先带上 UserMenu.CMD 的路径试试,可以使用 PECMD 的环境变量。
因为路径不正确 EXEC 命令没有完成,或者开启日志记录看看,在你的系统中日志记录也是繁体的。
回复

使用道具 举报

1442#
发表于 2008-6-19 23:31:32 | 只看该作者
直接打上光碟機路徑也是沒執行...

:User
set OUTTOOL=%CD%
PECMD EXEC !=E:\OUTTOOL\UserMenu.CMD
PECMD LOAD %windir%\UserMenu.ini
回复

使用道具 举报

1443#
发表于 2008-6-19 23:31:39 | 只看该作者
呵呵,我就暂时不更新先了。等我把一切都琢磨清楚,要做些什么的时候,再全部重新来过。
回复

使用道具 举报

1444#
 楼主| 发表于 2008-6-19 23:50:24 | 只看该作者
原帖由 jzdai0903 于 2008-6-19 11:31 PM 发表
直接打上光碟機路徑也是沒執行...

:User
set OUTTOOL=%CD%
PECMD EXEC !=E:\OUTTOOL\UserMenu.CMD
PECMD LOAD %windir%\UserMenu.ini


你的前导隐藏了执行界面,看看 %windir%\ 下有没有生成文件。
另,%CD% 这个环境变量在一些系统中可能没有定义。

未命名.PNG (5.78 KB, 下载次数: 159)

未命名.PNG
回复

使用道具 举报

1445#
发表于 2008-6-20 00:00:18 | 只看该作者
%windir%內沒有生成 UserMenu.ini 這文件...

剛剛沒說清楚...我是直接指定路徑的不是用環境變量...
虛擬機中...我的光碟機是 E:
我是直接打上路徑的呢...
不過他沒執行...

:User
PECMD EXEC !=E:\OUTTOOL\UserMenu.CMD
PECMD LOAD %windir%\UserMenu.ini
回复

使用道具 举报

1446#
 楼主| 发表于 2008-6-20 00:54:07 | 只看该作者
原帖由 jzdai0903 于 2008-6-20 12:00 AM 发表
%windir%內沒有生成 UserMenu.ini 這文件...

剛剛沒說清楚...我是直接指定路徑的不是用環境變量...
虛擬機中...我的光碟機是 E:
我是直接打上路徑的呢...
不過他沒執行...

:User
PECMD EXEC !=E:\OUT ...


帮你测试,文件是生成了,但有问题,不知道为什么会这样。

未命名.PNG (17.32 KB, 下载次数: 152)

未命名.PNG
回复

使用道具 举报

1447#
发表于 2008-6-20 07:30:56 | 只看该作者

老九的新版pecmd有一个大问题不知是不是BUG

情况是这样的,我的配置是启动时检测Ctrl键,如果按下则出一个模式选择窗口,v3.1.528能够正常出窗口,但改成3.1.615和最新的3.2.618则不行。窗口出不来死机了。但进入系统shell后可以正常调出这个窗口。不知何故?配置文件如下:

`-------------------------------------调用子程序部分-----------------------------------------------------
_SUB LOADWIM  `装载外置程序镜像
TEAM TEXT 正在装载%WIMF%程序……#0xEE,$20|WAIT 500
ENVI CurOPDir=%OPDrv%\%WIMF%
PATH %CurOPDir%
MOUN %WimDir%\%WIMF%.WIM,%CurOPDir%,1,%CacheDir%
PATH @%CurOPDir%
FIND MEM>120,IFEX 桌面背景\PELOGO.JPG,TEAM LOGO 桌面背景\PELOGO.JPG|WAIT 500
EXEC !REGDOC.CMD `运行各外置的初始安装文件
LOAD REGDOC.INI  `运行各外置的初始配置文件
EXEC !CMD /C "ECHO MOUN ,%CurOPDir%,0 >>%SYSTEMROOT%\UNMOUN.INI"  `生成卸载文件
_END
_SUB AutoSetLoadMode `据内存容量自动设定装载模式
ENVI $LOADMODE=0
FIND MEM>120,ENVI $LOADMODE=1
FIND MEM>250,ENVI $LOADMODE=2
FIND MEM>500,ENVI $LOADMODE=3
FIND MEM>750,ENVI $LOADMODE=4
FIND MEM>1000,ENVI $LOADMODE=5
_END
_SUB HandsSetLoadMode,W360H310,手工选定外置程序装载模式
ENVI TT=30 `TT为窗口停留时间
ENVI V0=0--纯系统
ENVI V1=1--装载基本工具
ENVI V2=2--装载硬件驱动
ENVI V3=3--装载IE等网络工具
ENVI V4=4--装载办公游戏等高级应用系统
ENVI V5=5--装载以上所有程序+启动时自动安装驱动
GROU Group1,L12T3W330H190   
RADI RadioButton0,L32T14W250H20,%V0%,,1
RADI RadioButton1,L32T44W250H20,%V1%,,0
RADI RadioButton2,L32T74W250H20,%V2%,,0
RADI RadioButton3,L32T104W250H20,%V3%,,0
RADI RadioButton4,L32T134W250H20,%V4%,,0
RADI RadioButton5,L32T164W250H20,%V5%,,0
TEAM ENVI V0=|ENVI V1=|ENVI V2=|ENVI V3=|ENVI V4=|ENVI V5=
LABE Label1,L20T200W320H40,说明:选择后面的模式自动包括前面的程序;退出则由程序根据内存容量自动选择装载模式。
ITEM Button1,L220T240W88H24,确定,CALL CheckMode
TIME Timer1,1000,CALL CancleButt
_END
_SUB CancleButt
CALC Result=%TT%-1
ENVI TT=%Result%
ENVI @Button1=确定(%TT%秒)
IFEX $%TT%<1,TEAM ENVI @Timer1=0|KILL \%HandsSetLoadMode%
_END
_SUB CheckMode
ENVI M1=手动选择模式
IFEX $%RadioButton0.Check%=1,ENVI $LOADMODE=0
IFEX $%RadioButton1.Check%=1,ENVI $LOADMODE=1
IFEX $%RadioButton2.Check%=1,ENVI $LOADMODE=2
IFEX $%RadioButton3.Check%=1,ENVI $LOADMODE=3
IFEX $%RadioButton4.Check%=1,ENVI $LOADMODE=4
IFEX $%RadioButton5.Check%=1,ENVI $LOADMODE=5
KILL \%HandsSetLoadMode%
_END
_SUB IFSetPageFile `询问是否设置虚拟内存
TEXT 是否设置虚拟内存?
MESS 您的计算机物理内存较少,某些外置程序的运行可能需要用到\n虚拟内存。设置了虚拟内存,有助于提高系统的速度和稳定性;\n如果您需要保护并恢复硬盘分区数据,可跳过虚拟内存的设置。\n \n您确定要设置虚拟内存吗?(建议设置,20 秒后默认选择否)@设置虚拟内存 #YN *20000 $NO
FIND $%YESNO%=YES,Call SetPageDrv!TEXT 没有建立虚拟内存……
WAIT 500
_END
_SUB SetPageDrv  `设定虚拟内存存放分区
TEXT 正在设定虚拟内存……
BROW PageDrv,*,请选择虚拟内存文件存放的分区,取消则自动选择D:分区
FIND $%PageDrv%=,ENVI PageDrv=D:\
TEXT 正在设定虚拟内存到%PageDrv%盘……
PAGE %PageDrv%%PF% 256
ENVI PageDrv=
_END
_SUB FirstLoad
TEAM TEXT 3秒内按住Ctrl键可以手动选择装载模式,否则由程序自动选择...... #0xEE $20|WAIT 3000
FIND KEY=17,ENVI M1=手动选择的模式|CALL @HandsSetLoadMode
_END
`--------------------------------------配置文件主程序部分------------------------------------------------
`关于两个启动模式变量的说明
`LOADMODE--定义装载模式:0-纯系统不装外置;1-装MMC外置;2-装载DRV驱动;3-装扩展APP外置;
`                       4-办公游戏多媒体等高级应用;5-全自动模式
`DRV_DIRECT_RUN--启动时显、声、网直接驱动,直接驱动设为YES否则设为NO
`定义变量初始值
ENVI WimDir=%CurDir%   `保存配置文件所在目录
ENVI $LOADMODE=-1
ENVI $BootFromCD=NO    `是否为从cdrom启动(PECMD.INI文件中会以这个变量来判定是否调用本ini文件)
ENVI M1=自动检测模式
IFEX %CurDrv%\SETUP\PESETUP.EXE,ENVI $BootFromCD=YES `通过检测pe安装文件确定是否为从cdrom启动
`---------------------------手动或自动选择装载模式------------------------------
IFEX %SYSTEMROOT%\UNMOUN.INI,CALL @HandsSetLoadMode!CALL FirstLoad `通过检测UNMOUN.INI文件来决定是否为初次装载。
IFEX $%LOADMODE%<0,CALL AutoSetLoadMode
IFEX $%LOADMODE%>4,ENVI $DRV_DIRECT_RUN=YES
`---------------------------预置装载模式(要使用请将以上三行挂起,下行取消挂起)---------------------------
//TEAM ENVI M1=WinPE.ini文件中预置的模式|ENVI $LOADMODE=4|ENVI $DRV_DIRECT_RUN=NO
TEAM TEXT|TEXT 系统将按%M1%:%LOADMODE%启动....... #0xEE $20|WAIT 800
//NUMK 0 `对于笔记本键盘,可以不挂起,以关闭数字键
USER 老九 WinPE,老毛桃、hhh333修改版
`清理掉上次启动 PE 或 Windows 时留下的虚拟内存页面文件
ENVI PF=Pagefile.sys
TEAM FILE C:\%PF%|FILE D:\%PF%|FILE E:\%PF%|FILE F:\%PF%|FILE G:\%PF%|FILE H:\%PF%|FILE I:\%PF%|FILE J:\%PF%|FILE K:\%PF%|FILE L:\%PF%|FILE M:\%PF%|FILE N:\%PF%|FILE O:\%PF%|FILE P:\%PF%|FILE Q:\%PF%
`物理内存低于 256MB 时询问是否设定虚拟内存
`设PFIsSet.LOG文件的作用是后续程序可以检测此文件以判断是否设置了虚拟内存,以便程序无阻塞运行;还可以在再次装载时不用再设置
IFEX %Temp%\PFIsSet.LOG,!FIND MEM<256,CALL IFSetPageFile
EXEC =!CMD.EXE /C "FOR %I IN (C D E F G H I J K L M N O P Q) DO IF EXIST %I:\PAGEFILE.SYS ECHO PageFile in %I>%Temp%\PFIsSet.LOG"
`安装光盘启动在桌面建安装快捷方式
LINK %Desktop%\安装 WinPE 到硬盘,%WimDir%\..\SETUP\PESetup.EXE `建立安装 WinPE 的快捷方式
`根据LOADMODE的值装载外置及驱动
TEAM FILE %Desktop%\加载外部配置.*|FILE %SYSTEMROOT%\UNMOUN.INI
IFEX $%LOADMODE%>0,TEAM ENVI WIMF=MMC|IFEX %WimDir%\%WIMF%.WIM,TEAM ENVI CacheDir=%TEMP%|CALL LOADWIM
IFEX $%LOADMODE%>1,TEAM ENVI WIMF=DRV|IFEX %WimDir%\%WIMF%.WIM,TEAM ENVI CacheDir=|CALL LOADWIM
IFEX $%LOADMODE%>2,TEAM ENVI WIMF=APP|IFEX %WimDir%\%WIMF%.WIM,TEAM ENVI CacheDir=%TEMP%|CALL LOADWIM
IFEX $%LOADMODE%>3,TEAM ENVI WIMF=ADV|IFEX %WimDir%\%WIMF%.WIM,TEAM ENVI CacheDir=|CALL LOADWIM
IFEX $%LOADMODE%>0,LINK %Desktop%\卸载外部配置,PECMD.EXE,LOAD %WimDir%\UnloadOP.INI,Shell32.dll#26!LINK %Desktop%\加载外部配置,PECMD.EXE,LOAD %WimDir%\Winpe.INI,Shell32.dll#5
WALL 桌面背景\PEWallPaper.JPG
`删除环境变量进桌面
FIND Explorer.EXE,!TEAM TEXT 正在载入桌面……|SHEL %WinDir%\EXPLORER.EXE
TEAM TEXT|LOGO|WAIT 500
TEAM ENVI $LOADMODE=|ENVI $DRV_DIRECT_RUN=|ENVI CurOPDir=|ENVI WIMF=|ENVI CacheDir=|ENVI M1=|ENVI TT=
//配置文
回复

使用道具 举报

1448#
发表于 2008-6-20 07:49:43 | 只看该作者
原帖由 hhh333 于 2008-6-20 07:30 AM 发表
情况是这样的,我的配置是启动时检测Ctrl键,如果按下则出一个模式选择窗口,v3.1.528能够正常出窗口,但改成3.1.615和最新的3.2.618则不行。窗口出不来死机了。但进入系统shell后可以正常调出这个窗口。不知何 ...


>>>解决了,是有一个find语句没加team。(FIND KEY=17,ENVI M1=手动选择的模式|CALL @HandsSetLoadMode)
真对不起!!!!!
回复

使用道具 举报

1449#
发表于 2008-6-20 09:39:39 | 只看该作者
试用PECMD-V3.2.618.251发现一问题反馈

将PECMD-V3.1.528.172换成了PECMD-V3.2.618.251后发现一个问题反馈一下:

IE的安装文件在PECMD-V3.1.528.172环境中一切正常,在PECMD-V3.2.618.251环境中运行出错,IE装不上了

偶也发现了。昨晚用了三个小时时间,我测试的结果是,虽然没有安装成功,但手动却可以用IE上网。
所以我猜想: 是新版的pecmd导致显示安装IE失败,桌面不会出现IE图标,但手动可以打开IE并正常上网, 之前放出的测试版没有此问题
由此我还发现,居然IE还可以做成绿色版,不用安装ie.inf也能上网。
有请老九看看!
贴图:

以上测试的pecmd.exe修改时间是19日10点多,刚发现了19日晚更新的版本,回家再测试一下,再说。

[ 本帖最后由 hlytg 于 2008-6-20 09:44 AM 编辑 ]
回复

使用道具 举报

1450#
 楼主| 发表于 2008-6-20 09:59:29 | 只看该作者
都是用 CMD 批处理安装的,与 PECMD 无关吧。

与 PECMD 有关的是 EXEC 命令有没有启动你的 CMD,如果启动了,就说明这个 CMD 或 INF 文件有问题
回复

使用道具 举报

1451#
发表于 2008-6-20 10:50:05 | 只看该作者
再次测试最新版,现象与之前一样,换成测试版,一切正常.
老九说得也有道理,看来得修改一下inf或干脆抛弃ie.inf了。

[ 本帖最后由 hlytg 于 2008-6-20 10:54 AM 编辑 ]
回复

使用道具 举报

1452#
发表于 2008-6-20 12:08:59 | 只看该作者
set /?:
如果命令扩展名被启用,有几个动态环境变量可以被扩展,但
不会出现在 SET 显示的变量列表中。每次变量数值被扩展时,
这些变量数值都会被动态计算。如果用户用这些名称中任何
一个定义变量,那个定义会替代下面描述的动态定义:

%CD% - 扩展到当前目录字符串。

%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。

%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。

%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。

%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。

%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。

%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。
回复

使用道具 举报

1453#
发表于 2008-6-20 13:40:46 | 只看该作者
TO 老九

昨晚打完最後一篇回覆後...無憂就上不來了...

再說一下我測試的結果...

原流程...WIMMOD.CMD內....PECMD EXEC !=UserMenu.CMD不會執行

:User
PECMD EXEC !=UserMenu.CMD
PECMD LOAD %windir%\UserMenu.ini

把他改成...

:User
START /WAIT UserMenu.CMD
PECMD LOAD %windir%\UserMenu.ini

再來是UserMenu.CMD的內容...最後一段要加上EXIT

這樣就可以正常使用了...效果就會跟我那份測試ISO一樣可以正常使用...

所以可以確定這邊的 EXEC 不會執行...原因不明...
回复

使用道具 举报

1454#
 楼主| 发表于 2008-6-20 14:13:53 | 只看该作者
原帖由 jzdai0903 于 2008-6-20 01:40 PM 发表
TO 老九

昨晚打完最後一篇回覆後...無憂就上不來了...

再說一下我測試的結果...

原流程...WIMMOD.CMD內....PECMD EXEC !=UserMenu.CMD不會執行

:User
PECMD EXEC !=UserMenu.CMD
PECMD LOAD %windir%\UserMenu.ini

把他改成...

:User
START /WAIT UserMenu.CMD
PECMD LOAD %windir%\UserMenu.ini

再來是UserMenu.CMD的內容...最後一段要加上EXIT

這樣就可以正常使用了...效果就會跟我那份測試ISO一樣可以正常使用...

所以可以確定這邊的 EXEC 不會執行...原因不明...


说明,EXEC 命令找不到 UserMenu.CMD。

可能的原因是,反复 LOAD 不同路径的 INI 引起了 %CurDir% 和 %CurDrv% 混乱。
在本人没有更新 PECMD 之前,你这样试试,在 LOAD 新的 INI 之前,自己记忆一下当前的 %CurDir% 和 %CurDrv%,如:

//开始
ENVI IniFileCurDir=%CurDir%
ENVI IniFileCurDrv=%CurDrv%


//其它执行代码
//.................

LOAD aaaa.INI
ENVI CurDir=%IniFileCurDir%
ENVI CurDrv=%IniFileCurDrv%


//其它执行代码
//.................

LOAD bbbb.INI
ENVI CurDir=%IniFileCurDir%
ENVI CurDrv=%IniFileCurDrv%

//其它执行代码
//.................

LOAD cccc.INI
ENVI CurDir=%IniFileCurDir%
ENVI CurDrv=%IniFileCurDrv%

//其它执行代码
//.................


即在每一个 INI 文件开始先记录好当前的 %CurDir% 和 %CurDrv%,
在这个 INI 文件的每一条 LOAD 命令之后恢复原先的 %CurDir% 和 %CurDrv%。
要注意的是每一个 INI 文件的 IniFileCurDir 和 IniFileCurDrv 的名称都不能相同

[ 本帖最后由 lxl1638 于 2008-6-20 02:17 PM 编辑 ]
回复

使用道具 举报

1455#
 楼主| 发表于 2008-6-20 14:28:57 | 只看该作者
或者改一下 WIMMOD.CMD 试试,在 WIMMOD.CMD 开头就加入:

Set CMDCommandLine=%0
FOR /F "delims=" %%I in ("%CMDCommandLine%") do set ThisPath=%%~dpI
REM ...........................
PECMD EXEC !=%ThisPath%UserMenu.CMD
REM ...........................

[ 本帖最后由 lxl1638 于 2008-6-20 02:31 PM 编辑 ]
回复

使用道具 举报

1456#
发表于 2008-6-20 15:47:24 | 只看该作者

新版的驱动安装问题

新版虽然解决了ini文件中调用其他ini的问题(原先的必须发一个pecmd load来调用,否则不能返回),但在启动时通过ini文件来调用安装IE的CMD会出错,调用安装声卡、显卡的CMD文件会卡死不动。

尝试解决:
1、IE安装问题
PUSHD %TP%\Internet Explorer
FOR /F %%i In ('DIR *.DLL /B /A-D') DO REGSVR32 /S %%i
REGSVR32 /S Flash9A.OCX
REGSVR32 /S /N /I INETCPL.CPL
IF NOT EXIST %Windir%\System32\INETCPL.CPL COPY INETCPL.CPL %Windir%\System32 /Y>NUL
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 .\IE.INF
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /va /f

以上将调用PECMD的地方去掉,IE.inf文件能够正常安装

2、声卡显卡网卡驱动CMD的问题
如果将这些cmd做成桌面快捷方式,能够正常运行。但放到INI文件中去调用则不行,估计是这些CMD中也大量使用了pecmd命令,这样造成pecmd循环调用,于是产生问题。怎么办?难道要将CMD中的命令做到INI文件中?请九兄解答!!!
回复

使用道具 举报

1457#
发表于 2008-6-20 16:03:24 | 只看该作者
新的pecmd有没有配套的pelogon呢?
回复

使用道具 举报

1458#
发表于 2008-6-20 17:37:41 | 只看该作者

很多CMD文件运行不正常

不知道老九动了哪里,原先INI文件中调用CMD是正常的,新版就不行,如
配置文件中调用了regdoc.cmd文件,内容如下:
REM 设置外挂程序与其文档的关联,并调用REGDOC.INI。
PUSHD %~dp0
SET TP=%CD%
rem---------------WINRAR--------------------------------
...........
REM ----------------------MAKECAB---------------------------
....................
REM ----------------------COMMON-WB-MMC-----------------------
CALL %TP%\FREEWB\InsWB.CMD
CALL %TP%\COMMON\InsOC.CMD
CALL %TP%\MMC\InsMMC.CMD
CD %TP%
:END
EXIT

上述文件调用的InsOC.CMD文件:
PUSHD %~dp0
7z.exe x OUTER_COMMON.7z -y -aos -o"%WinDir%\System32"
SET OC=%USERPROFILE%\「开始」菜单\程序\附件
PECMD LINK %OC%\计算器,%WinDir%\System32\CALC.EXE
PECMD LINK %OC%\画图,%WinDir%\System32\MSPAINT.EXE
PECMD RUNS %SystemRoot%\SYSTEM32\internat.exe,输入法指示器
PECMD FIND internat.exe,!EXEC internat.exe
InstallIme.exe minpy.IME minpy,拼音输入法
SET OC=
EXIT

以前可以出输入法图标,现在也不出了。
回复

使用道具 举报

1459#
发表于 2008-6-20 18:01:04 | 只看该作者

彻底晕了

刚才又发现更多异常如:
winpe.ini中调用REGDOC.INI
REGDOC.INI中有如下语句:
`提取硬盘上原有 Windows XP 的部分资源的快捷方式组
EXEC !%CurDir%\XP资源\XP资源快捷方式.cmd

XP资源快捷方式.cmd中只有第一个pecmd link获得执行。(以下为Pseudo编辑的文件内容,红色字部分并未产生快捷方式)
@echo off
title XP资源快捷方式  Pseudo 2008.02.22
cd /d "%~dp0"
set P=%USERPROFILE%\「开始」菜单\程序
if not "%1"=="" PECMD FILE "%P%\XP资源"
if exist "%P%\XP资源" goto :eof
pecmd LINK !%P%\XP资源\0声明和说明,cmd.exe, /c start /max /D"%~dp0" 0声明和说明.txt,shell32.dll#23
pecmd LINK !%P%\XP资源\1全能驱动,1全能驱动.bat,,shell32.dll#44
pecmd LINK !%P%\XP资源\2全能应用,2全能应用.bat,,shell32.dll#24
pecmd LINK !%P%\XP资源\重建菜单,XP资源快捷方式.cmd,覆盖方式,shell32.dll#39

...............................


我算是彻底搞迷糊了,如果说是%CurDir%发生了变化,引起异常,但第一个pecmd link创建又成功了。九哥不会说是CMD本身的问题吧?我真的要投降了!!!


[ 本帖最后由 hhh333 于 2008-6-20 06:08 PM 编辑 ]
回复

使用道具 举报

1460#
发表于 2008-6-20 18:09:45 | 只看该作者

一个好的建议:

注释现在的//和'都是行的注释。可否增减块的注释。
格式:
/*   文字1
文字2
*/
要求:/*和*/必须在开头。
处理:和_SUB/_END一样,两者之间的任何内容都不处理。修改起来应该非常方便。
回复

使用道具 举报

1461#
发表于 2008-6-20 19:02:44 | 只看该作者
用置顶的测试版的pecmd可以启动cmd等批处理程序,但是用这个3.2版的pecmd就不行了,为什么啊?
用以前的pecmd也可以启动的
回复

使用道具 举报

1462#
发表于 2008-6-20 19:20:15 | 只看该作者

大体上知道调用失败的原因了

新的pecmd似乎造成PUSHD %~dp0失效,即不能改变当前目录到CMD所在目录。
回复

使用道具 举报

1463#
发表于 2008-6-20 20:48:26 | 只看该作者
FDRV AllDrive=
在XP都正常
在PE2.0只会回传x:
回复

使用道具 举报

1464#
发表于 2008-6-20 20:55:38 | 只看该作者
pecmd.exe如果在 ..\执行load都正常
但是如果丢在像c:\windows\system32\这种目录
用cmd在d:\底下运行pecmd load test.ini则完全没反应
这问题导致要运行菜单的地方都要放个pecmd.exe
不能c:\windows\system32\到处运行
回复

使用道具 举报

1465#
发表于 2008-6-20 22:18:01 | 只看该作者
原帖由 nasai 于 2008-6-20 08:55 PM 发表
pecmd.exe如果在 ..\执行load都正常
但是如果丢在像c:\windows\system32\这种目录
用cmd在d:\底下运行pecmd load test.ini则完全没反应
这问题导致要运行菜单的地方都要放个pecmd.exe
不能c:\windows\syste ...


LS說的沒錯...我實際在正常XP下測試結果如同LS說的...

所以我也試者放一個PECMD到我那個測試版ISO的OUTTOOL資料夾內...結果登錄LOGO後到進入桌面的運行都正常了...

所有在CMD內調用PECMD執行的指令都可正常運行...

所以猜測這應該是問題的主因...給老九參考修改...
回复

使用道具 举报

1466#
发表于 2008-6-20 23:03:17 | 只看该作者
我用最新版本的PECMD,在调用REGDOC.CMD也是出问题了,执行过程中出错了,以致连声卡、显卡、网卡不能安装(说明一下,我用的是YYQ572的Byebye修改版,注册表已做了相应修改)。
回复

使用道具 举报

1467#
发表于 2008-6-20 23:23:32 | 只看该作者
LS的試試放一個PECMD到你 REGDOC.CMD的那個目錄裡面...至於註冊表就照你原本的就好了...

然後再測試一次吧...
回复

使用道具 举报

1468#
 楼主| 发表于 2008-6-21 01:09:44 | 只看该作者
PECMD.EXE 的工作目录是 INI 文件所在的目录,如果要被 EXEC 命令启动的其它命令(如 CMD)不与 INI 同目录,EXEC 将会找不到这些要被启动的CMD批处理,这个时候要给出 CMD批处理的全路径了
另一种情况更复杂,就在 INI 里通过 LOAD 命令载入另一个目录的 INI 时,PECMD.EXE 的当前工作目录将会设置到最后一个被LOAD载入的INI目录,正是由于这个版本支持反复加载不同目录的INI,引起了PECMD.EXE当前工作目录的混乱。

所以在 PECMD.EXE 更新之前,大家要记住上红色的文字,并适当修改 CMD 代码,把 CMD 批处理的工作目录设置到 CMD 所在目录

[ 本帖最后由 lxl1638 于 2008-6-21 01:14 AM 编辑 ]
回复

使用道具 举报

1469#
发表于 2008-6-21 05:49:24 | 只看该作者
原帖由 lxl1638 于 2008-6-21 01:09 AM 发表
PECMD.EXE 的工作目录是 INI 文件所在的目录,如果要被 EXEC 命令启动的其它命令(如 CMD)不与 INI 同目录,EXEC 将会找不到这些要被启动的CMD批处理,这个时候要给出 CMD批处理的全路径了。
另一种情况更复杂, ...


>>>pecmd工作目录设置到最后一个调用的ini文件所在的目录应该是正确的,但也应该允许INI文件中调用的CMD命令改变当前工作目录,况且,CMD文件还可能调用其他CMD文件,有很多CMD的第一条语句就是pushd %~dp0,这是用来将当前目录设置到CMD所在的目录。如果这第一条命令不成功则会出现各种异常
回复

使用道具 举报

1470#
发表于 2008-6-21 06:29:53 | 只看该作者
对九兄的这个PECMD有几个建议:

1、请尽快设定LOAD和EXEC执行规则(或者说是恢复原规则)。
2、WAIT命令等待按键时应该一旦有按键就往下执行,而不要一直等待原设定秒数。就象NTLDR菜单设定30秒,如果回车后它还要等30秒肯定是不符合操作习惯的。
3、帮助信息也应该有一个首字母定位的功能,譬如我要查WAIT命令按一个W就可以定位到,而不要反复pagedown

关于当前目录可以采取如下方案,看是否可行。
     A.INI中一旦碰到LOAD B.INI,则马上将A.INI的%CURDIR% PUSH到堆栈中,再将当前目录更改到B.INI所在目录,保证B.INI执行第一条语句时,当前目录在B.INI,如果B.INI又调用C.INI,则又将B.INI的当前目录PUSH到堆栈中,其他以此类推……。当LOAD所调用的INI执行完要执行LOAD后的下一条语句之前执行一次POP堆栈操作,这样就可保证各个INI执行的语句都在它所在的目录。
    不管哪个INI文件中有EXEC到其他CMD或BAT都由这些CMD去维护它自己的当前目录,就象从桌面执行快捷方式一样。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-3-2 04:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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