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

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

   火... [复制链接]
 楼主| 发表于 2014-7-5 11:12:32 | 显示全部楼层
527104427 发表于 2014-7-5 11:10
报告个问题,下面的03PE替换新版的PECMD后,开启网络失败。卡在安装IE那里了

http://pan.baidu.com/s/ ...

之前用那个最近版本的 PECMD正常?
回复

使用道具 举报

发表于 2014-7-5 11:16:12 | 显示全部楼层
mdyblog 发表于 2014-7-5 10:49
>>不过  FIND $%ai%=REG_DWORD, TEAM SET tp=#| SET bstr=0|EXIT -
>>这句中,SET bstr=0是什么作用? ...

对了,再提个小要求:
我比较喜欢在批处理和ini文件中加注释,这样将来自己能明白改了些什么,也方便别人阅读。
批处理中的注释都是rem开头的,老大能不能加个判断,把这些注释自动转换为pecmd的注释(比如把rem转换为//)。

点评

-----V7---- 对齐 保留注释 空行  详情 回复 发表于 2014-7-5 11:58
回复

使用道具 举报

 楼主| 发表于 2014-7-5 11:58:48 | 显示全部楼层
fukystone 发表于 2014-7-5 11:16
对了,再提个小要求:
我比较喜欢在批处理和ini文件中加注释,这样将来自己能明白改了些什么,也方便别 ...

-----V7----
对齐
保留注释 空行
回复

使用道具 举报

 楼主| 发表于 2014-7-5 15:28:33 | 显示全部楼层
527104427 发表于 2014-7-5 12:59
找到问题了,是这条命令卡住:

CALL $INETCPL.CPL,DllInstall

CALL $inetcomm.dll
CALL $INETCPL.CPL,DllInstall
换成下面试试。
EXEC =*"%MyName%" CALL $inetcomm.dll
EXEC =*"%MyName%" CALL $INETCPL.CPL,DllInstall

回复

使用道具 举报

 楼主| 发表于 2014-7-7 13:38:17 | 显示全部楼层
527104427 发表于 2014-7-5 18:22
将所有的 UPNP -pnp 替换成
EXEC =!BartPe.exe -pnp
问题解决,原来是UPNP的问题!

找的好辛苦啊。 从2013.1.19 的版本78.16(你用的那个) 开始找,知道最新的88版。
源码对比。

总算找出 下面的原因。
CALL $inetcomm.dll
CALL $INETCPL.CPL,DllInstall
必须加 EXEC =*"%MyName%"

----
新下载88版, 直接替换就好了。什么都不用改了。
回复

使用道具 举报

发表于 2014-7-7 14:48:20 | 显示全部楼层
老大,我又来请教了。知不知道怎么调用7zxa.dll来解压7z格式文件啊?这个库非常小,只能用来解压7z格式,winrar就是调用它来解压7z的。。但是我找不到这个dll的相关说明。
附上7zxa.dll 7zxa.zip (83.79 KB, 下载次数: 8)

点评

COM调用。 就是图中这几个函数。 找本C语言COM调用的书看看吧, 再转为WCS。 [attachimg]196341[/attachimg]  详情 回复 发表于 2014-7-8 11:56
回复

使用道具 举报

 楼主| 发表于 2014-7-7 14:56:43 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-7 15:13 编辑
527104427 发表于 2014-7-7 14:03
老大辛苦了!

报告一下,其它问题搞定了,但 UPNP 还是不行~


UPNP  可以啊。
从网盘 重新下载最新的88版PECMD2012。
我用你原始的ISO,只替换 PECMD.EXE,其他都不变。

启动,加载网络都正常,网卡装上来。
net.png

PECMD-88最新.zip

455.29 KB, 下载次数: 11

回复

使用道具 举报

 楼主| 发表于 2014-7-8 11:30:41 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-8 11:52 编辑
527104427 发表于 2014-7-8 10:25
经过昨天与今天的测试发现,在虚拟机和一台式机开启网络成功。
在另一台式机死活不成功,昨天有成功过一 ...

你不是用DEVI 安装的驱动。 你这里DEVI只是解压的作用。
你用的 :
  1. InfCacheBuild.exe %SystemRoot%
  2. UPNP -pnp
复制代码
但是你这里 有 同名文件,这种方法 是同类文件拷到同一个系统目录。
你这里对应3个  Netrtle.inf
互相覆盖。 这是有问题的。
  1. 找到驱动: PCI\VEN_10EC&DEV_8168&SUBSYS_85051043&REV_09, INF 文件: X:\WXPE\INF\Netrtle.inf
  2. 找到驱动: PCI\VEN_10EC&DEV_8168&SUBSYS_85051043&REV_09, INF 文件: X:\WXPE\INF\Netrtle.inf
  3. 找到驱动: PCI\VEN_10EC&DEV_8168&SUBSYS_85051043&REV_09, INF 文件: X:\WXPE\INF\Netrtle.inf
复制代码

-----
直接用DEVI安装(7PE的方法):
  1. DEVI $drivers_net_x.cab,,%TEMP%
复制代码
试试。
不过,   drivers_net_x.cab 需要 从原来的 驱动重新打包, 注意:打包时不要勾选 【处理INF】

两种方法的CAB驱动格式不同; 【处理INF】 造成的。
参见1#楼。

---
还有, 你包内有3个混淆的驱动,
试试,分开打包, 一个一个地测试, 看哪个能驱动。


----
你提高匹配级别到3节,试试(默认2节),这样只有   Lan.Realtek\A_5_824\Netrtle.inf  匹配了。
   DEVI   drivers_net_x.cab,3
或DEVI $drivers_net_x.cab,3,%TEMP%
HELP   DEVI
----哦,前面说过, 824不能驱动,还是把824 和694从CAB删除吧,只留810。
回复

使用道具 举报

 楼主| 发表于 2014-7-8 11:56:19 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-8 12:00 编辑
阿弥陀佛 发表于 2014-7-7 14:48
老大,我又来请教了。知不知道怎么调用7zxa.dll来解压7z格式文件啊?这个库非常小,只能用来解压7z格式,wi ...

COM调用。
就是图中这几个函数。
找本C语言COM调用的书看看吧, 再转为WCS。
7z-COM.png

参考: http://www.rupeng.com/forum/forum.php?mod=viewthread&tid=16350

点评

多谢!有空再好好研究。  详情 回复 发表于 2014-7-8 12:36
回复

使用道具 举报

发表于 2014-7-8 12:36:06 | 显示全部楼层
mdyblog 发表于 2014-7-8 11:56
COM调用。
就是图中这几个函数。
找本C语言COM调用的书看看吧, 再转为WCS。

多谢!有空再好好研究。
回复

使用道具 举报

发表于 2014-7-8 12:57:11 来自手机 | 显示全部楼层
M大,批处理的
echo 测试>测试.txt,在PECMD2012里用什么命令?

点评

PUTF -dd --len=0 测试.txt,0,zero //长度清零 WRIT 测试.txt,$1,测试 // HELP WRIT 看帮助  详情 回复 发表于 2014-7-8 15:27
回复

使用道具 举报

 楼主| 发表于 2014-7-8 15:27:25 | 显示全部楼层
singel 发表于 2014-7-8 12:57
M大,批处理的
echo 测试>测试.txt,在PECMD2012里用什么命令?

PUTF -dd --len=0  测试.txt,0,zero   //长度清零
WRIT  测试.txt,$1,测试
// HELP WRIT 看帮助
回复

使用道具 举报

 楼主| 发表于 2014-7-8 15:34:10 | 显示全部楼层
527104427 发表于 2014-7-8 12:55
FORX *.cab,NetCab,0,DEVI $%NetCab%,,%Temp%

这样倒是可以装上驱动,但是,驱动完,X盘不能访问了! ...

X: 些满了吧。
不要FORX
测试来准确点。不然说不清,无法交流。
PATH D:\TEMP\DRV
DEVI $drivers_net_810.CAB,,D:\TEMP\DRV

drivers_net_810.CAB 就放810的驱动, 制作时 不要勾 【处理INF】
也不要用原来的CAB 解包再打包, 这样没用的,文件已经损坏了。
你包内是没有被  【处理INF】的吗?????
回复

使用道具 举报

发表于 2014-7-8 15:59:00 | 显示全部楼层
多谢M大,俺去研究看看^_^
回复

使用道具 举报

 楼主| 发表于 2014-7-8 20:56:31 | 显示全部楼层
527104427 发表于 2014-7-8 20:43
我来捋一捋问题:

1.驱动包当然是按照老大要求重新制作的,所以没有说明,是不想老大觉得啰嗦。包括 ...

ENVI $temp=d:\TEMP
ENVI $tmp=d:\TEMP
mess  [设置完毕]
就可以了。
你怎么判断“没能刷新”?

(正常系统)判断 方法:
开始菜单-》启动一个cmd.exe
C:\> echo %TEMP%
回复

使用道具 举报

 楼主| 发表于 2014-7-9 06:21:31 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-9 06:46 编辑
527104427 发表于 2014-7-8 21:13
明白了,是配置文件中加了TEAM ENVI^ ForceLocal=1|ENVI^ EnviMode=1
的缘故

不是这个原因。
ENVI $ 和 ENVI # 不理会  ENVI^ ForceLocal=1
此时不可能是PE变量。忽略此设置。
abc-sys.wcs.zip (271 Bytes, 下载次数: 11)
  1. TEAM ENVI^ ForceLocal=1| ENVI^ EnviMode=1
  2. ENVI $ABC=123456789ABCDEF-TEST
  3. exec cmd  /k echo ABC=[%%ABC%%]
  4. EXEC rundll32.exe /d shell32.dll,Control_RunDLL SYSDM.CPL
复制代码


还有 后缀-env //临时取消forcelocal便于操作环境变量,必须是第一个后缀   
envi-env.wcs.zip (337 Bytes, 下载次数: 3)
  1. TEAM ENVI^ ForceLocal=1| ENVI^ EnviMode=1
  2. ENVI-env A1=sys1234  //设置环境变量
  3. SET  &A1=local1234
  4. SET     &A2A=%A1%  //此时%A1%做PE变量解
  5. SET-env &A2B=%A1%  //此时临时取消forcelocal, %A1%优先做环境变量解
  6. ENVI^ ForceLocal=0
  7. MESS.  A1[%A1%]    &A1[%&A1%]    &A2A[%&A2A%]   &A2B[%&A2B%]
  8. // A1[sys1234]    &A1[local1234]    &A2A[local1234]   &A2B[sys1234]   
复制代码

ENVI.png
回复

使用道具 举报

 楼主| 发表于 2014-7-9 06:30:08 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-9 06:33 编辑
527104427 发表于 2014-7-9 00:07
实际操作中还是遇到了困难,比如NET.INI中:

EXEC =虚拟内存与临时文件设置.exe


EXEC =虚拟内存与临时文件设置.exe
MESS %TEMP%

-----
操作系统都是这样设计的, 环境变量不能回传, 也不能进程间相互影响。
只有在创建子进程是,继承父进程的。 创建后也不手父进程影响。
-----
只有 EXEC* 捕获输出, 或多注册表
  1. SET &mytemp=
  2. REGI $HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\TEMP,&&mytemp
  3. FIND $%&mytemp%=,  REGI $HKCU\Environment\TEMP,&&mytemp
  4. ENVI TEMP=%&mytemp%
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-7-9 07:41:47 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-9 07:43 编辑
527104427 发表于 2014-7-9 00:07
实际操作中还是遇到了困难,比如NET.INI中:

EXEC =虚拟内存与临时文件设置.exe


重新下载最新PECMD, 加了个接口
//※PECMD内存变量: ENVI^ LoadEnvi //从注册表刷新环境变量,慎用!!!
环境变量同步.wcs.zip (470 Bytes, 下载次数: 4)
  1. //※PECMD内存变量: ENVI^ LoadEnvi //从注册表刷新环境变量,慎用!!!
  2. ENVI^  EnviMode=1
  3. ENVI ABC=123
  4. SET  &ABC.0=%ABC%
  5. EXEC =!"%MyNAME%" ENVI $ABC=567
  6. ENVI^  LoadEnvi   //此慎用,随便一个进程都会修改本进程环境变量,影响程序逻辑。
  7.            //如果此时另一个进程修改$ABC为999,得到的就是999
  8.            //如果I是一个LOOP循环变量, 另一个进程修改$I,ENVI^  LoadEnvi,那将是灾难!!!!
  9. MESS. Old ABC[%&ABC.0%] New ABC[%ABC%] [PECMD%&PECMDVER% %PECMDBUILD%]
  10. //Old ABC[123] New ABC[567] [PECMD201201880100 X86 U Jul  9 2014 07:19:08]
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-7-9 09:26:25 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-9 09:39 编辑
527104427 发表于 2014-7-9 00:07
实际操作中还是遇到了困难,比如NET.INI中:

EXEC =虚拟内存与临时文件设置.exe


重新下载最新PECMD 88.02 , ENVI^ LoadEnvi 增强了,可带路径参数 和变量名参数

//※PECMD内存变量: ENVI^ LoadEnvi [[HKCU\]子路径|-] [变量名] //从注册表刷新[环境变量],慎用!!  
//路径 - 为占位符号, 此时只是从标准环境变量区同步指定变量名
//如  【ENVI^ LoadEnvi  PATH】 就只是刷新PATH变量。
//不指定路径,就是标准环境变量区
//不指定变量名,就是路径中的全部变量

环境变量同步-精准.wcs.zip (622 Bytes, 下载次数: 2)
  1. ENVI^ EnviMode=1
  2. ENVI ABC=123
  3. SET  &ABC.0=%ABC%
  4. EXEC =!"%MyNAME%" REGI $HKLM\SOFTWARE\PECMD_DAT\%&__PID%-%%&__PID%%\Environment\ABC=5678
  5. ENVI^  LoadEnvi HKLM\SOFTWARE\PECMD_DAT\%&__PID%-%&__LastPID%\Environment ABC //慎用LoadEnvi
  6. //此处用 “父子进程号” 对为传递路径,防止其它进程的干扰。
  7. //同时指定变量名,避免干扰其它变量名
  8. MESS. Old ABC[%&ABC.0%] New ABC[%ABC%] [PECMD%&PECMDVER% %PECMDBUILD%]
  9. //Old ABC[123] New ABC[5678] [PECMD201201880200 X86 U Jul  9 2014 08:46:31]  
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-7-9 15:10:57 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-9 15:15 编辑
527104427 发表于 2014-7-9 11:52
用压缩包里的 REGCMD2WCS.WCS
转换后变成这样了,貌似运行失败


需要 和一起打包的 新版。
前后的一对| | 也可以换成 一对“”(用旧版不能加空格,新版可以), 这样旧版也可以。
只是 “”, 看起来都是字符串, EDITPlus 看起来很难受。
用“”或|| 比原来的  TEAM 效率高些。 后者是一条命令。 前者只是语法,直接脱去还原为一条命令。
回复

使用道具 举报

 楼主| 发表于 2014-7-9 17:57:38 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-9 18:06 编辑
527104427 发表于 2014-7-9 11:46
多谢,环境变量的问题已解决,用下面代码:
SET &mytemp=
REGI $HKLM\SYSTEM\CurrentControlSet\Cont ...

修改号了。 88.02 88.01  86.02(本来可以吧) 均可以启动。
如图:
boot88.02.png

本次 同步修改正了下列包。
PECMD2012.1.78.21.05D-130510.多窗口线程稳定版_win32_64.sfx.zip
PECMD2012.1.80.14.07F-130810.多窗口线程稳定版_win32_64新设计.sfx.zip
PECMD2012.1.84.02.04-130810.多窗口线程稳定版_win32_64新设计.sfx.zip
PECMD2012.1.86.02.00-130810.多窗口线程稳定版_win32_64新设计.sfx.zip
PECMD2012.1.88.01.00-140625.多窗口线程稳定版_win32_64新设计.sfx.zip
PECMD2012.1.88.02.00兼容精简版.zip
PECMD2012.1.88.02.00-140625.多窗口线程稳定版_win32_64新设计.sfx.zip

这些包 都能处理|| 定界, “”定界且前引号后可带空格, 修正了 MSTR *   最前面的空格问题。
|     ENVI  ABC=12|3    |
"     ENVI  ABC=12|3    "
TEAM     ENVI  ABC=12||3    |

上面 ABC的值都是【12|3    】
注意: TEAM的话, 内部的|序列都要加一个|, 有多层TEAM则依次多加几个。
TEAM   IFEX $1=1,  TEAM  ENVI  ABC=12|||3    ||      ENVI BBB=|||2|               ENVI CCC=22||2  |
                         --------------------        -------------
                   -----------------------------------------------
       -----------------------------------------------------------                ----------------
      
解释:
IFEX $1=1,
{*
   ENVI  ABC=12|3   
   ENVI BBB=|2
}

"  ENVI CCC=22|2   "


IFEX  FIND 中嵌套是嵌套的!也是这样处理的。
回复

使用道具 举报

发表于 2014-7-9 18:43:38 | 显示全部楼层
PECMD2012.1.78.21.05D-130510.多窗口线程稳定版_win32_64.sfx.zip
木有看到啊?
其它都看见了

点评

78 [attachimg]196398[/attachimg]  详情 回复 发表于 2014-7-9 19:07
回复

使用道具 举报

 楼主| 发表于 2014-7-9 19:07:26 | 显示全部楼层
2012qnmd 发表于 2014-7-9 18:43
PECMD2012.1.78.21.05D-130510.多窗口线程稳定版_win32_64.sfx.zip
木有看到啊?
其它都看见了

78
78.png
回复

使用道具 举报

发表于 2014-7-9 19:12:56 | 显示全部楼层
首页的链接,没有78

无法进到你这个页面啊!

点评

[attachimg]196411[/attachimg] 新家了个。 [attachimg]196412[/attachimg]  详情 回复 发表于 2014-7-9 22:20
回复

使用道具 举报

 楼主| 发表于 2014-7-9 19:13:00 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-9 20:57 编辑
527104427 发表于 2014-7-9 11:52
用压缩包里的 REGCMD2WCS.WCS
转换后变成这样了,貌似运行失败

定界符 可选。 文件关联注册时有效。
regwcs.png
REGCMD2WCS.wcs.zip (4.37 KB, 下载次数: 10)

点评

嗯,既然还在改,那么再报告个小bug吧 如果原reg中涉及到了PECMD LOAD,那么会多一对引号,最好判断处理一下: reg add "HKLM\SOFTWARE\Classes\inifile\shell\PECMD载入\command" /f /ve /t REG_SZ /d "pecmd.exe  详情 回复 发表于 2014-7-9 20:00
回复

使用道具 举报

发表于 2014-7-9 19:15:10 | 显示全部楼层
和新版放一个目录吧! 可能你可以看见,其他人看不到.
回复

使用道具 举报

发表于 2014-7-9 20:00:32 | 显示全部楼层
mdyblog 发表于 2014-7-9 19:13
定界符 可选。 文件关联注册时有效。

嗯,既然还在改,那么再报告个小bug吧
如果原reg中涉及到了PECMD LOAD,那么会多一对引号,最好判断处理一下:
reg add "HKLM\SOFTWARE\Classes\inifile\shell\PECMD载入\command" /f /ve /t REG_SZ /d "pecmd.exe LOAD \""%%1\"""

会转换成
TEAM REGI  $HKLM\SOFTWARE\Classes\inifile\shell\PECMD载入\command\\=pecmd.exe LOAD “"%%1"”|
多一对引号,失败了

点评

加个选项  详情 回复 发表于 2014-7-9 22:08
回复

使用道具 举报

 楼主| 发表于 2014-7-9 22:08:10 | 显示全部楼层
fukystone 发表于 2014-7-9 20:00
嗯,既然还在改,那么再报告个小bug吧
如果原reg中涉及到了PECMD LOAD,那么会多一对引号,最好判断处理 ...

加个选项
regwcs.png
REGCMD2WCS.wcs.zip (4.52 KB, 下载次数: 29)
回复

使用道具 举报

 楼主| 发表于 2014-7-9 22:20:09 | 显示全部楼层
2012qnmd 发表于 2014-7-9 19:12
首页的链接,没有78

无法进到你这个页面啊!

1.png

新家了个。
New.png
回复

使用道具 举报

 楼主| 发表于 2014-7-11 06:09:59 | 显示全部楼层
本帖最后由 mdyblog 于 2014-7-11 07:58 编辑

关于88.02版的  窗口初始化指令【CALL @】

目前建议在脚本开始加一行 “CALL @” (不含引号)


原因:
有些命令 如 WAIT 、 MSTR 、FILE 等,不需要窗口环境。
但是 EXEC   != PECMD WAIT 5000
或BAT中 PECMD WAIT 5000
这样 或引起 窗口 闪一下。

88.02就是解决这个问题, 不闪了。

默认是不开窗口的。 只有CALL @。。。  MESS 。。。时才开窗口系统。
这样纯WAIT,FILE。。。的PECMD进程就不会闪了。

但是, 这样就可能和原有的设计不兼容。
问题1: 有些命令不执行: 原来的设计某些命令统一检查是否为窗口环境。新版本需要甄别一下,但是还没找全。
                如 ENVI @@Visable--------------7.11 已经修正。

问题2: 访问内存错误: 非窗口环境,访问空的窗口指针。新版本需要仔细判断
空窗口指针一下,但是还没找全。


脚本 还没有子进程(或没开或都已结束) 的 情况下,调用【 CALL @】
一般在脚本的开始。
这样就保险了。和原来版本一样。
调用窗口, MESS 是自动初始化 窗口系统。 不需要再单独 【CALL @】。
随着时间的延长, 估计这2个问题都能解决------扎样一般不需要【CALL @】。

下面测试代码, PECMD很旧.78.21.05C.EXE效果如图:
  1. ENVI^ EnviMode=1
  2. WIN1
  3. _SUB WIN1,W289H159,测试窗口抖动%&PECMDVER%,
  4.     ITEM ITEM1,L99T67W60H30,测试,OnTEST,
  5.     LABE -center LABE1,L54T19W138H30,,,
  6. _END
  7. _SUB OnTEST
  8.     ENVI @ITEM1.Enable=0
  9.     ENVI I=6
  10.     LOOP #%I%>0, TEAM CALC I=%I% - 1| ENVI @LABE1=%I%...| EXEC =!"%MyName%" WAIT 6000
  11.     ENVI @ITEM1.Enable=1
  12. _END
复制代码
开始:
1.png
启动子进程PECMD马上变灰了:
标题变灰.png
88.02没问题。



PECMD很旧.78.21.05C.zip

439.67 KB, 下载次数: 3

测试窗口抖动.wcs.zip

368 Bytes, 下载次数: 2

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-14 01:14

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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