无忧启动论坛

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

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
7201#
 楼主| 发表于 2014-3-16 21:14:54 | 只看该作者
hhh333 发表于 2014-3-16 13:07
现在错误修正得差不多了,但加外置速度慢没有变,肯定是哪个地方有问题,将OP.IMG包解开,就没有问题,最 ...

改为输出捕捉模式就可以了。 8杆子打不着。挺灵异的!!!!!!!!

EXEC =*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro
改为
EXEC* &MSG=*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro
即可。

完整版,写的比较复杂, 代码多。 普通写的和 输出捕捉模式 基本一样。所以问题。
精简版 直接Wait进程退出(无限等待)。
imdisk.exe  真的很灵异。

不管它了。
也仿照 输出捕捉模式 写了。
好了。

点评

EXEC* &MSG=*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro 你这不是把等待取消了吗? 相当于EXEC *imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro  详情 回复 发表于 2014-3-17 11:30
回复

使用道具 举报

7202#
发表于 2014-3-17 11:30:19 | 只看该作者
mdyblog 发表于 2014-3-16 21:14
改为输出捕捉模式就可以了。 8杆子打不着。挺灵异的!!!!!!!!

EXEC =*imdisk.exe -a -f D:\H3P ...

EXEC* &MSG=*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro
你这不是把等待取消了吗?
相当于EXEC *imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro

点评

输出捕捉模式 强制 等待。因为只有等待,才能捕捉输出。 EXEC =*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro 执行完毕后, 输出 存到 &MSG 上面只是说原因。 修改后(下载最新) EXEC =*imdisk.exe  详情 回复 发表于 2014-3-17 12:22
回复

使用道具 举报

7203#
 楼主| 发表于 2014-3-17 12:22:59 | 只看该作者
本帖最后由 mdyblog 于 2014-3-17 12:24 编辑
hhh333 发表于 2014-3-17 11:30
EXEC* &MSG=*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro
你这不是把等待取消了吗?
相当于EXEC *imd ...


输出捕捉模式 强制 等待。因为只有等待,才能捕捉输出。
先 EXEC  =*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro
执行完毕后, 输出 存到 &MSG


上面只是说原因。

修改后(下载最新)
EXEC  =*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro
也是可以了。
大概2~3秒。
类似上面。 但最后不保存输出。直接返回。

点评

哦,我理解有误 马上测试 另外,应该尽量限制什么“*”、“^”号的使用,能够不用尽量不用,99%与4.0兼容 我一直不太理解EXEC* &MSG=*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro第一个*号的意思,我看完全版很  详情 回复 发表于 2014-3-17 15:48
回复

使用道具 举报

7204#
发表于 2014-3-17 15:48:10 | 只看该作者
本帖最后由 hhh333 于 2014-3-17 15:49 编辑
mdyblog 发表于 2014-3-17 12:22
输出捕捉模式 强制 等待。因为只有等待,才能捕捉输出。
先 EXEC  =*imdisk.exe -a -f D:\H3PE\OP.IMG ...


哦,我理解有误
马上测试
另外,应该尽量限制什么“*”、“^”号的使用,能够不用尽量不用,99%与4.0兼容,4.0的语法显得更严谨,也更易用一些。
我一直不太理解EXEC* &MSG=*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro第一个*号的意思,我看完全版很多命令后都可以接这个符号,这个有什么讲究?如何理解?  

点评

精简版 不支持 %N 参数形式。 参数统一 为%__ARG% 自己用MSTR XX=来提取个部分。 Printer\INSPRINT.INI中2行EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p %1" EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a  详情 回复 发表于 2014-3-17 17:39
(1)* 在 windows 上 不容易撞衫。 一般不用。 (2)* 看起来清楚(比较显眼) 根据我的经历,尽量用那些显眼的 符号来编程,否则很容易丢掉而没发现。 所以 PECMD 扩展时 大量采用*符号。 EXEC* 加个*  详情 回复 发表于 2014-3-17 17:32
回复

使用道具 举报

7205#
发表于 2014-3-17 16:16:30 | 只看该作者
试了,NT5三卡都不能驱动了
可能破坏了等待机制。

点评

下载最最新 精简版 版。 我这里 2003PE、win7PE 完全 工作起来了。  详情 回复 发表于 2014-3-17 18:19
回复

使用道具 举报

7206#
发表于 2014-3-17 17:13:02 | 只看该作者
看看再说
回复

使用道具 举报

7207#
 楼主| 发表于 2014-3-17 17:32:38 | 只看该作者
本帖最后由 mdyblog 于 2014-3-17 17:42 编辑
hhh333 发表于 2014-3-17 15:48
哦,我理解有误
马上测试
另外,应该尽量限制什么“*”、“^”号的使用,能够不用尽量不用,99%与4.0 ...


(1)* 在 windows 上 不容易撞衫。 一般不用。
(2)* 看起来清楚(比较显眼)
根据我的经历,尽量用那些显眼的 符号来编程,否则很容易丢掉而没发现。
所以 PECMD 扩展时 大量采用*符号。


EXEC*
加个* 表示 扩展 用法。提示 用不同的 提取参数方法。

EXEC  MSG=*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro
表示执行命令【MSG=*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro】
MSG=变成命令的一部分。

EXEC*   MSG=*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro
则命令为 【*imdisk.exe -a -f D:\H3PE\OP.IMG -m Z: -o ro】
MSG为变量名,保存输出结果,=为变量名 终结符。同时强制 等待。

当时就这么想,这么做。 后来也就这么下来了。
回复

使用道具 举报

7208#
 楼主| 发表于 2014-3-17 17:39:13 | 只看该作者
本帖最后由 mdyblog 于 2014-3-17 17:43 编辑

hhh333 发表于 2014-3-17 15:48
哦,我理解有误
马上测试
另外,应该尽量限制什么“*”、“^”号的使用,能够不用尽量不用,99%与4.0 ...

精简版 不支持 %N 参数形式。
参数统一 为%&__ARG%
自己用MSTR  XX=<N>来提取个部分。
  
Printer\INSPRINT.INI中2行:
  1. EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p %1"
  2. EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p %1"
复制代码
要改为:
  1. MSTR &&a1=<1>%&__ARG%
  2. EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p %&a1%"
  3. EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p %&a1%"
复制代码


点评

这个按DOS命令来解释,应该可以用吧?  详情 回复 发表于 2014-3-17 18:03
回复

使用道具 举报

7209#
发表于 2014-3-17 18:03:01 | 只看该作者
mdyblog 发表于 2014-3-17 17:39
精简版 不支持 %N 参数形式。
参数统一 为%&__ARG%
自己用MSTR  XX=来提取个部分。

这个按DOS命令来解释,应该可以用吧?

点评

精简版脚本 最开始加 TEAM ENVI^ EnviMode=1| Envi^ __ARG=1| LOGS **np **ln=0 //不打印行号 这样用最新的完整本的话。 两者的 LOG 文件一样。 方便比较。  详情 回复 发表于 2014-3-17 19:02
如果这是DOS脚本 (CMD BAT) 那么自然按 DOS命令来解释, 但这是 WCS 脚本。 首先 PECMD解释。 完整版中: 被替换成相应的串。 走流程, 应该换成空串。 EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p  详情 回复 发表于 2014-3-17 19:00
回复

使用道具 举报

7210#
 楼主| 发表于 2014-3-17 18:19:38 | 只看该作者
hhh333 发表于 2014-3-17 16:16
试了,NT5三卡都不能驱动了
可能破坏了等待机制。

下载最最新 精简版 版。
我这里 2003PE、win7PE  完全 工作起来了。

回复

使用道具 举报

7211#
 楼主| 发表于 2014-3-17 18:46:28 | 只看该作者
本帖最后由 mdyblog 于 2014-3-17 18:47 编辑
hhh333 发表于 2014-3-16 13:07
现在错误修正得差不多了,但加外置速度慢没有变,肯定是哪个地方有问题,将OP.IMG包解开,就没有问题,最后定位在如下语句:
    EXEC =*imdisk.exe -a -f %IniDir%\OP.IMG -m %ImgDrv% -o ro
不知这个与完全版有何区别?特别是在NT5中,这个语句到等20多秒,NT6中比完全版也慢几秒。



这个的确是Imdisk灵异。
用PECMD4.0 测试也一样。
附件用4.0测试 需要20秒。
有LOG:
MESS 开始:2014-3-17|1|18:41:59 \n完成:2014-3-17|1|18:42:19 @调试 #OK        操作成功完成。

Imdisk灵异测试.wcs.7z (8.76 KB, 下载次数: 1)

回复

使用道具 举报

7212#
 楼主| 发表于 2014-3-17 19:00:09 | 只看该作者
hhh333 发表于 2014-3-17 18:03
这个按DOS命令来解释,应该可以用吧?

如果这是DOS脚本 (CMD BAT)
那么自然按 DOS命令来解释,

但这是 WCS 脚本。
首先 PECMD解释。

完整版中:
被替换成相应的串。  走流程, 应该换成空串。
EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p %1"
翻译成
EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p "

精简中:
%1不解释原样保留。

EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p %1"
还是
EXEC =!CMD.EXE /C "..\HWPNP.EXE +all /a /d /p %1"

接着CMD.exe  /C
来解释执行
【”..\HWPNP.EXE +all /a /d /p %1“】

没见过这种用法的:
CMD.exe  /C   带 %N 参数。
可能 也不解释 。%1 这个串本身 可能就当作 参数  传给 ..\HWPNP.EXE

..\HWPNP.EXE 不是脚本处理器,不会翻译%1。 %1本身是其参数的一部分。
最后实际命令为
【..\HWPNP.EXE +all /a /d /p %1】
应该 不是你想要的吧。



CMD.exe 一般是 脚本文件 才有%N  参数
ABC.CMD  1  2  33
ABC.CMD  文件内才有%N参数可用。





点评

感觉到这个%1根本没用上,应该可以去掉,不知道以前是搞得什么东东,这个有4年多了,不太记得这个工具的用法了。 看意思主要是用来安装串口的。  详情 回复 发表于 2014-3-17 19:34
回复

使用道具 举报

7213#
 楼主| 发表于 2014-3-17 19:02:40 | 只看该作者
hhh333 发表于 2014-3-17 18:03
这个按DOS命令来解释,应该可以用吧?

精简版脚本 最开始加
TEAM ENVI^ EnviMode=1| Envi^ __ARG=1| LOGS **np  **ln=0   //不打印行号
这样用最新的完整本的话。
两者的 LOG 文件一样。
方便比较。
回复

使用道具 举报

7214#
发表于 2014-3-17 19:34:52 | 只看该作者
mdyblog 发表于 2014-3-17 19:00
如果这是DOS脚本 (CMD BAT)
那么自然按 DOS命令来解释,

感觉到这个%1根本没用上,应该可以去掉,不知道以前是搞得什么东东,这个有4年多了,不太记得这个工具的用法了。
看意思主要是用来安装串口的。

点评

走流程的话, 的确 可以不要。 为空。  详情 回复 发表于 2014-3-17 19:47
回复

使用道具 举报

7215#
 楼主| 发表于 2014-3-17 19:47:24 | 只看该作者
hhh333 发表于 2014-3-17 19:34
感觉到这个%1根本没用上,应该可以去掉,不知道以前是搞得什么东东,这个有4年多了,不太记得这个工具的 ...

走流程的话, 的确 可以不要。
为空。
回复

使用道具 举报

7216#
发表于 2014-3-17 19:59:14 | 只看该作者
现在可以了,三卡驱动也行了,暂时没发现问题,等一下我看64位的看有不有问题;
对于精简版,我想有几个建议:
1、尽量减少扩展功能,能不用尽量不用。尽量兼容4.0,真正体现精简二字。
2、语法尽量规范。以前老九规定关键字是4个字母,符号的引用一般也好记,如=代表等待 !代表否则或取反
3、现在需要一个帮助:
     一是与4.0比较有出入、有修正、有强化的地方
     二是与完全版比较被精简的功能是什么
希望能够放那个帮助文件中。
回复

使用道具 举报

7217#
发表于 2014-3-17 20:28:16 | 只看该作者
本帖最后由 hhh333 于 2014-3-17 21:24 编辑

64位,在W8PE64中测试驱动声卡失败了,完全版是正常的。核心语句就是
SERV audiosrv
DEVI %Windir%\inf\hdaudio.inf

在W81PE64中RUN注册表中用MAIN参数调用INI,竟然没执行,应该是意外中断了。

看来还得改

又发现32位的切换到ADMIN也有问题,估计是SHEL **u MAIN **u的问题。

点评

64为 声卡可以了。  详情 回复 发表于 2014-3-18 09:19
>>在W81PE64中RUN注册表中用MAIN参数调用INI,竟然没执行,应该是意外中断了。 maiin 不能重复调用。内部禁止了。  详情 回复 发表于 2014-3-17 23:44
回复

使用道具 举报

7218#
 楼主| 发表于 2014-3-17 23:44:06 | 只看该作者
hhh333 发表于 2014-3-17 20:28
64位,在W8PE64中测试驱动声卡失败了,完全版是正常的。核心语句就是
SERV audiosrv
DEVI %Windir%\inf\h ...

>>在W81PE64中RUN注册表中用MAIN参数调用INI,竟然没执行,应该是意外中断了。

maiin 不能重复调用。内部禁止了。

点评

没有重复调用。  详情 回复 发表于 2014-3-17 23:53
回复

使用道具 举报

7219#
发表于 2014-3-17 23:53:40 | 只看该作者
mdyblog 发表于 2014-3-17 23:44
>>在W81PE64中RUN注册表中用MAIN参数调用INI,竟然没执行,应该是意外中断了。

maiin 不能重复调用。 ...

没有重复调用。

点评

64位的切换到ADMIN 好了。 Win8X64测试的。  详情 回复 发表于 2014-3-18 12:22
回复

使用道具 举报

7220#
 楼主| 发表于 2014-3-18 09:19:07 | 只看该作者
hhh333 发表于 2014-3-17 20:28
64位,在W8PE64中测试驱动声卡失败了,完全版是正常的。核心语句就是
SERV audiosrv
DEVI %Windir%\inf\h ...

64为 声卡可以了。
回复

使用道具 举报

7221#
 楼主| 发表于 2014-3-18 12:22:45 | 只看该作者
hhh333 发表于 2014-3-17 23:53
没有重复调用。

64位的切换到ADMIN 好了。 Win8X64测试的。
回复

使用道具 举报

7222#
发表于 2014-3-18 21:26:44 | 只看该作者
本帖最后由 hhh333 于 2014-3-18 21:30 编辑

是的现在
1、Admin切换修正了(64与32均无问题)
2、64位声卡驱动也正常了
但,81中不执行,我查了下,没明白怎么回事,下面是执行逻辑:
RUN注册表中:PECMD.EXE MAIN %SystemRoot%\system32\RamOSInit.ini-->RamOSInit.ini中:IFEX $%Login_Admin%=1,LOAD %Windir%\system32\Admin.ini!TEAM ENVI $Login_Admin=1|LOAD %Windir%\system32\PECMD.INI

点评

8.1没法测试啊。 我还以为是个玩具,抢先看看。 什么也没有, 就一个桌面光板, 关机都找不到。  详情 回复 发表于 2014-3-18 21:33
回复

使用道具 举报

7223#
 楼主| 发表于 2014-3-18 21:33:06 | 只看该作者
本帖最后由 mdyblog 于 2014-3-18 21:36 编辑
hhh333 发表于 2014-3-18 21:26
是的现在
1、Admin切换修正了(64与32均无问题)
2、64位声卡驱动也正常了


8.1没法测试啊。 我还以为 只是 抢先看看。
什么也没有, 就一个桌面光板, 关机都找不到。

测试 8pe  8pe64 最好。 切换非常快。
7PE 切换 卡,提示 有服务 不正常。
8.1 无法测试。

点评

如果是我那个合盘,不换PECMD时,进桌面后会装载外置的,换成精简版就确实为光板PE了,可以手工执行了下PECMD.INI试一下。  详情 回复 发表于 2014-3-18 21:49
回复

使用道具 举报

7224#
发表于 2014-3-18 21:49:04 | 只看该作者
本帖最后由 hhh333 于 2014-3-18 21:51 编辑
mdyblog 发表于 2014-3-18 21:33
8.1没法测试啊。 我还以为 只是 抢先看看。
什么也没有, 就一个桌面光板, 关机都找不到。


如果是我那个合盘,不换PECMD时,进桌面后会装载外置的,换成精简版就确实为光板PE了,可以手工执行了下PECMD.INI试一下。

哈哈,没用过metro桌面吧,实际上win8就是这样的,没有开始菜单的,将鼠标移到右下角,有超级菜单出来,可以关机的。

点评

哦。 原来如此。  详情 回复 发表于 2014-3-18 21:51
回复

使用道具 举报

7225#
 楼主| 发表于 2014-3-18 21:51:38 | 只看该作者
hhh333 发表于 2014-3-18 21:49
如果是我那个合盘,不换PECMD时,进桌面后会装载外置的,换成精简版就确实为光板PE了,可以手工执行了下P ...


哦。 原来如此。


IFEX $%Login_Admin%=1,LOAD %Windir%\system32\Admin.ini!TEAM ENVI $Login_Admin=1|LOAD %Windir%\system32\PECMD.INI
可能有问题。
直接 LOAD %Windir%\system32\PECMD.INI
试试。

点评

直接LOAD当然可以啦,但要手工启动explorer  详情 回复 发表于 2014-3-18 22:07
W81采用的是RAMOS方式的PE,与传统的有点区别,是直接以Administrator登录的,原来的在setup注册表项中执行pecmd.exe main PECMD.ini不行了,放RUN注册表中,先进桌面再运行INI。  详情 回复 发表于 2014-3-18 21:55
回复

使用道具 举报

7226#
发表于 2014-3-18 21:55:11 | 只看该作者
mdyblog 发表于 2014-3-18 21:51
哦。 原来如此。

W81采用的是RAMOS方式的PE,与传统的有点区别,是直接以Administrator登录的,原来的在setup注册表项中执行pecmd.exe main PECMD.ini不行了,放RUN注册表中,先进桌面再运行INI。
回复

使用道具 举报

7227#
发表于 2014-3-18 22:07:50 | 只看该作者
mdyblog 发表于 2014-3-18 21:51
哦。 原来如此。

直接LOAD当然可以啦,但要手工启动explorer

点评

新的精简版 可以 8.1 8.1X64 了。 加了个 SHEL **s(默认) ,兼容 完整版。 (你用了**s)  详情 回复 发表于 2014-3-19 09:15
回复

使用道具 举报

7228#
发表于 2014-3-18 23:42:57 来自手机 | 只看该作者
个人以为,pecmd系列的语法太不规范,虽然说只是命令集合。

点评

它是 “类分布式” 开发的。 所以很混杂。 不是那种 “集中式” 开发的:一开始有个明确的开发目标。 前后开发了好多年。 有不同的风格。 不同的 人 不同的时候, 提出不同的要求。 如果太死, 很多 东西加  详情 回复 发表于 2014-3-19 09:14
回复

使用道具 举报

7229#
 楼主| 发表于 2014-3-19 09:14:06 | 只看该作者
本帖最后由 mdyblog 于 2014-3-19 09:17 编辑
四海皆狂龙 发表于 2014-3-18 23:42
个人以为,pecmd系列的语法太不规范,虽然说只是命令集合。


它是 “类分布式” 开发的。 所以很混杂。
不是那种 “集中式”  开发的:一开始有个明确的开发目标和明确的设计方案。
前后开发了好多年。 有不同的风格。

不同的 人 不同的时候, 提出不同的要求。

如果太死, 很多 东西加不上。
要有  “无”我  的  精神, 才可以的,否则 可能出现难以可调和的矛盾。
无克有  柔克强!

点评

既然是你接手改动,何不重新设计和使用的新规范的语法。PECMD我看过代码,里面其实就是纯粹api调用的命令解释,根本没有一个语法框架,我想,后面的版本也是不断增加命令,然后启用新的规则。  详情 回复 发表于 2014-3-19 13:37
我之所以不用PECMD就是因为它的语法太乱,各个命令,几乎根本没有通用的规律性,也许是因为首个开发者的原因,后面承传了这种风格。其实我倒是希望有人重新开发语法,类似vb或c++或autoit等一类的就容易多了,可惜我  详情 回复 发表于 2014-3-19 13:33
回复

使用道具 举报

7230#
 楼主| 发表于 2014-3-19 09:15:51 | 只看该作者
hhh333 发表于 2014-3-18 22:07
直接LOAD当然可以啦,但要手工启动explorer

新的精简版 可以 8.1 8.1X64 了。
加了个 SHEL **s(默认) ,兼容 完整版。
(你用了**s)

点评

意思是SHEL **s xxx=SHEL xxx  详情 回复 发表于 2014-3-19 14:40
好象是SHEL **u/MAIN **u 我看了一下admin.ini主要是你以前给出的代码,还有 LOGO *top **这个也很难理解,能不能有兼容4.0的方式。  详情 回复 发表于 2014-3-19 10:19
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-28 00:03

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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