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

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

   火... [复制链接]
发表于 2015-2-17 13:35:11 | 显示全部楼层
mdyblog 发表于 2015-2-17 13:01
目前来说, 只能是
调整L参数来实现。
先实测文字宽度W1
好了,只能先这样了。
SCRN ScrW,ScrH
CALC #L=%ScrW%/2
CALC #T=%ScrH%/2

TEXT 正在注册组件……#0xFFDDDD L%L% T%T% R B $20   

点评

你还要垂直居中吗? 上面只是水平居中。 处理国策和那个一样 假定测试实际显示区域100X20 ENVI W1=100 ENVI H1=20 SCRN WS,HS CALC #L=(%WS% - %W1%) / 2 CALC #T=(%HS% - %H1%) /2 TEXT 正在注册  详情 回复 发表于 2015-2-17 15:38
回复

使用道具 举报

 楼主| 发表于 2015-2-17 15:38:21 | 显示全部楼层
ling3882688 发表于 2015-2-17 13:35
好了,只能先这样了。
SCRN ScrW,ScrH
CALC #L=%ScrW%/2

你还要垂直居中吗?
上面只是水平居中。
处理国策和那个一样

假定测试实际显示区域100X20
ENVI  W1=100
ENVI  H1=20

SCRN WS,HS
CALC #L=(%WS% - %W1%) / 2
CALC #T=(%HS% - %H1%) /2

TEXT 正在注册组件……#0xFF  L%L% T%T%  $20   


---------还可指定RB------------
ENVI  W1=100
ENVI  H1=20

SCRN WS,HS
CALC #L=(%WS% - %W1%) / 2
CALC #T=(%HS% - %H1%) /2
CALC R=%L%+%W1%
CALC B=%T%+%H1%

TEXT 正在注册组件……#0xFF L%L% T%T% R%R% B%B% $20   

点评

TEXT那个就先这样处理了,MESS的窗口如何调整位置?默认是居中的。  详情 回复 发表于 2015-2-17 17:29
回复

使用道具 举报

发表于 2015-2-17 17:29:42 | 显示全部楼层
mdyblog 发表于 2015-2-17 15:38
你还要垂直居中吗?
上面只是水平居中。
处理国策和那个一样

TEXT那个就先这样处理了,MESS的窗口如何调整位置?默认是居中的。

点评

88.05.15新版 TEXT MESS 内置了这些功能。 TEXT: =有对齐+水平居中 -垂直居中 TEXT 正在注册组件。。。#0xFF +- $40 TEXT 正在注册组件。。。#0xFF T50 B150 +- $40 MESS-x:X值-y:Y值 。。。。 MES  详情 回复 发表于 2015-2-17 20:27
除非加一个参数。 目前只能 随另一个窗口来定位, 指定另外一个窗口的位置,在指定和改窗口的相对位置。  详情 回复 发表于 2015-2-17 17:56
回复

使用道具 举报

 楼主| 发表于 2015-2-17 17:56:47 | 显示全部楼层
本帖最后由 mdyblog 于 2015-2-18 04:36 编辑
ling3882688 发表于 2015-2-17 17:29
TEXT那个就先这样处理了,MESS的窗口如何调整位置?默认是居中的。


除非加一个参数。

目前只能 随另一个窗口来定位, 指定另外一个窗口的位置,在指定和改窗口的相对位置。
  1. TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
  2. //MESSXY X Y MESS参数
  3. _SUB MESSXY,*
  4.     TEAM ENVI @this.POS=%~1:%~2| MSTR &ARG=<3->%*
  5.     TEAM SET &cmd=MESS-sub:L0T0  %ARG%|  %&cmd%   
  6. _END
  7. MESSXY  100 100 你好中华 @标题*5000
复制代码

00073.png

点评

谢谢M大,新年快乐!  详情 回复 发表于 2015-2-18 11:36
回复

使用道具 举报

 楼主| 发表于 2015-2-17 20:27:47 | 显示全部楼层
ling3882688 发表于 2015-2-17 17:29
TEXT那个就先这样处理了,MESS的窗口如何调整位置?默认是居中的。

88.05.15新版 TEXT MESS 内置了这些功能。
TEXT: =有对齐+水平居中 -垂直居中

TEXT 正在注册组件。。。#0xFF +- $40

TEXT 正在注册组件。。。#0xFF  T50 B150  +- $40

MESS-x:X值-y:Y值  。。。。
MESS-x:100-y:200            AAAAAAAAAA@TTTT
回复

使用道具 举报

发表于 2015-2-18 07:26:55 | 显示全部楼层
mdyblog老师!新年快乐

点评

谢谢! 也祝你新年快乐!  详情 回复 发表于 2015-2-18 08:29
回复

使用道具 举报

 楼主| 发表于 2015-2-18 08:29:35 | 显示全部楼层
LVBABA 发表于 2015-2-18 07:26
mdyblog老师!新年快乐

谢谢!
也祝你新年快乐!{:soso_e177:}
回复

使用道具 举报

发表于 2015-2-18 11:36:06 | 显示全部楼层
mdyblog 发表于 2015-2-17 17:56
除非加一个参数。

目前只能 随另一个窗口来定位, 指定另外一个窗口的位置,在指定和改窗口的相对位 ...

谢谢M大,新年快乐!

点评

也祝你新年快乐!  详情 回复 发表于 2015-2-18 12:02
回复

使用道具 举报

 楼主| 发表于 2015-2-18 12:02:42 | 显示全部楼层
ling3882688 发表于 2015-2-18 11:36
谢谢M大,新年快乐!


也祝你新年快乐!{:soso_e177:}
回复

使用道具 举报

发表于 2015-2-18 12:58:41 | 显示全部楼层
你好,目前 part -gui 只能修改 分区类型 (隐藏 )
有没有可能修改media type ? 例如 fixed 硬盘 修改成usb/removable 或者 通过修改媒体类型 让winpe 将U盘读取成 Fixed?

点评

这个只能 【量产】 了。 不同U盘 的找不同的量产软件。 量产有风险,操作需谨慎! (操作失误,可能变成砖头)  详情 回复 发表于 2015-2-18 13:59
回复

使用道具 举报

 楼主| 发表于 2015-2-18 13:59:06 | 显示全部楼层
ikelca 发表于 2015-2-18 12:58
你好,目前 part -gui 只能修改 分区类型 (隐藏 )
有没有可能修改media type ? 例如 fixed 硬盘 修改成 ...

这个只能 【量产】 了。

不同U盘 的找不同的量产软件。
量产有风险,操作需谨慎!
(操作失误,可能变成砖头)

点评

好的,谢谢  详情 回复 发表于 2015-2-18 14:08
回复

使用道具 举报

发表于 2015-2-18 14:08:36 | 显示全部楼层
mdyblog 发表于 2015-2-18 13:59
这个只能 【量产】 了。

不同U盘 的找不同的量产软件。

好的,谢谢
回复

使用道具 举报

发表于 2015-2-20 10:29:14 | 显示全部楼层
本帖最后由 ling3882688 于 2015-2-20 14:37 编辑

M大,用PART命令可以获取磁盘分区类型是MBR或者GPT,有没有办法判断是否为混合磁盘分区?Hybrid MBR。

如何替换字符串中间的空格?例如:1 1   2 2  3 3  4 4,其中11 22 33 44中间有空格并且 1 1两个数之间也有空格。
MSTR A,B,C,D,E,F,G,H=<1><2><3><4><5><6><7><8>1 1  2 2 3 3  4 4
MESS %A%%B%%C%%D%%E%%F%%G%%H%
我能想到的就是上面这样处理了,但是问题是我这个字符串长度不确定。
要是可以替换字符串中的指定字符为自定义的字符或者为空就好处理了。

点评

1: // CheckHybridMBR 返回名 磁盘号 //返回: HMBR MBR GPT INVALID _SUB CheckHybridMBR SET &hd=%~2 CALC -err=-1 &hd=%&hd% SET &ret=INVALID SET $%&hd%>=0, { SET ret=NO  详情 回复 发表于 2015-2-22 14:45
回复

使用道具 举报

发表于 2015-2-20 15:12:11 | 显示全部楼层
本帖最后由 andos 于 2015-2-20 15:51 编辑

旧版(50)32位的PECMD.exe的 ENVI @@DeskTopFresh命令说明还有说clearicon,但新版就不见了,是说明出错了吧??

旧版说明
  1. ┃    │    │※刷新桌面: ENVI @@DeskTopFresh=[clearicon][;][1/2] //1:刷新桌面和我的电脑窗口            ┃
  2. ┃    │    │                          //2:专业刷新桌面,只刷新桌面      clearicon: (先)清除图标缓存
复制代码


最新版(51)32位的Pecmd.exe说明
  1. ┃    │    │※刷新桌面: ENVI @@DeskTopFresh=1      //刷新桌面和我的电脑窗口                            ┃
  2. ┃    │    │※刷新桌面: ENVI @@DeskTopFresh=2      //专业刷新桌面,只刷新桌面   
复制代码


不过最新版32位的PECMD巨小.exe 和PECMD原始.exe 又有clearicon的说明啊....

最新版(51)64位的Pecmd.exe又有clearicon的说明

点评

有: [attachimg]209981[/attachimg]  详情 回复 发表于 2015-2-22 14:22
回复

使用道具 举报

 楼主| 发表于 2015-2-22 14:22:12 | 显示全部楼层
本帖最后由 mdyblog 于 2015-2-22 14:27 编辑
andos 发表于 2015-2-20 15:12
旧版(50)32位的PECMD.exe的 ENVI @@DeskTopFresh命令说明还有说clearicon,但新版就不见了,是说明出错了吧 ...


1:有:
00072.png




==============================
2:最新版(51)32位的Pecmd.exe说明
------------------------------------------------------
你看的是精简版的说明吧:
00073.png


精简版 是模拟4.0 的。 七说明书基本上是按照4.0改的。
但是程序和同版本的 标准版一样的。 功能都有, 只是不说。

点评

应该不会吧,我好像没下过精简版呢 或者可能是我那里搞错了吧  详情 回复 发表于 2015-2-22 16:05
回复

使用道具 举报

发表于 2015-2-22 14:43:59 | 显示全部楼层
M大,用PART命令可以获取磁盘分区类型是MBR或者GPT,有没有办法判断是否为混合磁盘分区?Hybrid MBR。

如何替换字符串中间的空格?例如:1 1   2 2  3 3  4 4,其中11 22 33 44中间有空格并且 1 1两个数之间也有空格。
MSTR A,B,C,D,E,F,G,H=<1><2><3><4><5><6><7><8>1 1  2 2 3 3  4 4
MESS %A%%B%%C%%D%%E%%F%%G%%H%
我能想到的就是上面这样处理了,但是问题是我这个字符串长度不确定。
要是可以替换字符串中的指定字符为自定义的字符或者为空就好处理了。
回复

使用道具 举报

 楼主| 发表于 2015-2-22 14:45:06 | 显示全部楼层
本帖最后由 mdyblog 于 2015-2-22 14:46 编辑
ling3882688 发表于 2015-2-20 10:29
M大,用PART命令可以获取磁盘分区类型是MBR或者GPT,有没有办法判断是否为混合磁盘分区?Hybrid MBR。

...


1:

// CheckHybridMBR 返回名 磁盘号  
//返回: HMBR  MBR  GPT INVALID
_SUB CheckHybridMBR
    SET &hd=%~2
    CALC -err=-1 &hd=%&hd%
    SET &ret=INVALID
    SET $%&hd%>=0,
    {   SET ret=NO
        PART -iv=10 LIST DISK %&hd%,&&MBR
        SET ret=%&MBR%
        FIND $%&MBR%=MBR,
        {   SET &nm=\\.\PhysicalDrive%&hd%
            TEAM GETF %nm%,0x1C2#1,&&V| FIND $%&V%=0xEE, SET  ret=HMBR
        }
    }
    ENVI-ret %1=%&ret%
_END

//示例:
CheckHybridMBR  &&MBR  1
MESS. %&MBR%






2: SED 就可以了
SED V=0, ,,1 1   2 2  3 3  4 4
MESS. 【%V%】
//【11223344】

包内有说明文件:
HELP\PECMD2012正则表达式.doc

PECMD HELP SED

点评

返回值都是MBR,怎么判断是否是混合磁盘呢?  详情 回复 发表于 2015-2-26 11:15
谢谢M大。 还有个问题,HASH值比较的话属于字符还是数值?是不是IFEX比较的时候应该加$?  详情 回复 发表于 2015-2-22 15:41
回复

使用道具 举报

发表于 2015-2-22 15:41:18 | 显示全部楼层
本帖最后由 ling3882688 于 2015-2-22 15:52 编辑
mdyblog 发表于 2015-2-22 14:45
1:

// CheckHybridMBR 返回名 磁盘号  


谢谢M大。
还有个问题,HASH值比较的话属于字符串还是数值?

点评

字符串比较。  详情 回复 发表于 2015-2-22 16:39
回复

使用道具 举报

发表于 2015-2-22 16:05:02 | 显示全部楼层

应该不会吧,我好像没下过精简版呢

或者可能是我那里搞错了吧
回复

使用道具 举报

 楼主| 发表于 2015-2-22 16:39:10 | 显示全部楼层
ling3882688 发表于 2015-2-22 15:41
谢谢M大。
还有个问题,HASH值比较的话属于字符串还是数值?

字符串比较。

点评

IFEX [ $2  详情 回复 发表于 2015-2-22 17:02
回复

使用道具 举报

发表于 2015-2-22 17:02:53 | 显示全部楼层
本帖最后由 ling3882688 于 2015-2-22 17:19 编辑


IFEX [ $2<12 & |%PPP%=%hPPP% ],mess YES!mess NO
看我这个命令有问题吗?
如果[]里的条件都成立那就是YES,有一个不成立就是NO.
我拆开判断没问题,合到一起怎么就是NO呢?

ENVI hPPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3
ENVI PPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3
IFEX |%PPP%=%hPPP% ,MESS YES!MESS NO
IFEX $2<12,MESS YES!MESS NO
IFEX [ $2<12 & |%PPP%=%hPPP% ],MESS YES!MESS NO

执行结果两个YES 最后一个是NO
字符串我用 | 应该是可以吧,改成 $ 却可以判断正确。是不是IFEX 组合里不能同时比较字符串和数字?

点评

IFEX [ $2  详情 回复 发表于 2015-2-22 17:21
回复

使用道具 举报

 楼主| 发表于 2015-2-22 17:21:53 | 显示全部楼层
本帖最后由 mdyblog 于 2015-2-22 17:46 编辑


1:
IFEX [ $2<12 & |%PPP%=%hPPP% ],mess YES!mess NO
这样可以的 。

扩展后的 IFEX [ 可以 比较所有类型。

也可以:
IFEX [ $2<12 & '%PPP%'='%hPPP%' ],mess YES!mess NO

字符串比较可用 单引号括起来。

不是双引号。 双引号 很早就被用了,表示文件名。为了兼容,不动它了。


2:
ENVI hPPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3
ENVI PPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3
IFEX |%PPP%=%hPPP% ,MESS YES!MESS NO
IFEX $2<12,MESS YES!MESS NO
IFEX [ $2<12 & |%PPP%=%hPPP% ],MESS YES!MESS NO

执行结果两个YES 最后一个是NO
--------------
我这里3个都是YES。
我的版本: 88.05.51


3:
字符串我用 | 应该是可以吧
---------
可以

4:
字符串我用 | 应该是可以吧,改成 $ 却可以判断正确。是不是IFEX 组合里不能同时比较字符串和数字?
--------------
IFEX 组合里 可以混合多种类型。
你是不是用了有BUG的版本。

点评

ENVI hPPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3 ENVI PPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3 IFEX $%PPP%=%hPPP% ,MESS YES!MESS NO IFEX $2  详情 回复 发表于 2015-2-22 17:37
回复

使用道具 举报

发表于 2015-2-22 17:37:04 | 显示全部楼层
本帖最后由 ling3882688 于 2015-2-22 17:39 编辑


ENVI hPPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3
ENVI PPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3
//单独判断都是YES
IFEX |%PPP%=%hPPP% ,MESS YES!MESS NO
IFEX $2<12,MESS YES!MESS NO
//这里组合起来就是NO了
IFEX [ $2<12 & '%PPP%'='%hPPP%' ],MESS YES!MESS NO
IFEX [ $2<12 & |%PPP%=%hPPP% ],MESS YES!MESS NO

单引号和 | 执行结果为什么都不对呢?应该都是YES才对。

点评

最新版(52)测试包: 效果: [attachimg]209996[/attachimg]  详情 回复 发表于 2015-2-22 17:56
回复

使用道具 举报

 楼主| 发表于 2015-2-22 17:56:02 | 显示全部楼层
ling3882688 发表于 2015-2-22 17:37
ENVI hPPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3
ENVI PPP=D0DA59236ED6B0DF8E9DADC394A00274902 ...

最新版(52)测试包:
测试包.7z (530.6 KB, 下载次数: 5)

效果:
00082.png

点评

IFEX $%PPP%=%hPPP% 像这样,把单引号和|换成$,字符串比较改成数值比较了,为什么也可以正确执行?是当成16进制数值了吗?  详情 回复 发表于 2015-2-22 18:09
也就是说是我用的PECMD版本的问题了。  详情 回复 发表于 2015-2-22 18:02
回复

使用道具 举报

发表于 2015-2-22 18:02:56 | 显示全部楼层
本帖最后由 ling3882688 于 2015-2-22 18:08 编辑
mdyblog 发表于 2015-2-22 17:56
最新版(52)测试包:


也就是说是我用的PECMD版本的问题了。
回复

使用道具 举报

发表于 2015-2-22 18:09:04 | 显示全部楼层
mdyblog 发表于 2015-2-22 17:56
最新版(52)测试包:

IFEX $%PPP%=%hPPP%
像这样,把单引号和|换成$,字符串比较改成数值比较了,为什么也可以正确执行?是当成16进制数值了吗?

点评

非法的数字都变成0 , 自然相等。  详情 回复 发表于 2015-2-22 18:18
回复

使用道具 举报

 楼主| 发表于 2015-2-22 18:18:43 | 显示全部楼层
ling3882688 发表于 2015-2-22 18:09
IFEX $%PPP%=%hPPP%
像这样,把单引号和|换成$,字符串比较改成数值比较了,为什么也可以正确执行?是当 ...

非法的数字都变成0 , 自然相等。
回复

使用道具 举报

 楼主| 发表于 2015-2-23 13:18:03 | 显示全部楼层
本帖最后由 mdyblog 于 2015-2-26 05:37 编辑

53版加了个很好的功能:
├──────────────────────────────────────────────┨
│※查询文件位置:ENVI ?[起名][,长名][,簇大小名][,磁盘块表名][,块数名][,分区起始名]           ┃
│      [,DEV返回名]=FPOS,文件名                                                              ┃
│      磁盘块表:表示在分区上的分布,每块一行,每行依次为起始和长度。起始-1 为特殊压缩或洞   ┃
│//最多65535块 65536则可能未完,字节单位,块数前-表示相对0簇地址。起始-38:驻留文件            ┃
├──────────────────────────────────────────────┨


ENVI ?,,,&&POS,&&BLKS=FPOS,Z:\efi.img
MESS. %&BLKS%  %&POS%
//1 16384 1073741824

说明 Z:\efi.img 是连续的一整块。
在z:盘的启动位置为  16384
长度为 1073741824  

回复

使用道具 举报

 楼主| 发表于 2015-2-24 05:10:18 | 显示全部楼层
本帖最后由 mdyblog 于 2015-2-26 05:33 编辑

2:
53版加了个很好的功能:
├──────────────────────────────────────────────┨
│※查询文件位置:ENVI ?[起名][,长名][,簇大小名][,磁盘块表名][,块数名][,分区起始名]           ┃
│      [,DEV返回名]=FPOS,文件名                                                              ┃
│      磁盘块表:表示在分区上的分布,每块一行,每行依次为起始和长度。起始-1 为特殊压缩或洞   ┃
│//最多65535块 65536则可能未完,字节单位,块数前-表示相对0簇地址。起始-38:驻留文件            ┃
├──────────────────────────────────────────────┨
支持FAT FAT32 NTFS。

如果你的windows支持其它文件系统, 也而能返回相对的位置,就是相对0簇偏移,块数前-标记,自己加上0簇在分区的位置。
   (FAT FAT32 NTFS已经分析并加上了这个0簇起始)



【支持加载到目录的分区中的文件。】



1: 自己制作无HELP版
下载 PECMD32.88.05.53.无help.7z
说明, 46之后,可以自己制作无HELP版,内部逻辑支持这么做。
用 ResEdit 直接删除PECMD.EXE下面2个资源就可以了。
RCDATA\301
对话框\302

点评

>>是"说取文件偏移"也支持类似把ntfs分区挂载到X:\part_D这种文件夹里这种方式吗? 发表于 半小时前 -------------------- 是的, 支持。 还支持FAT、FAT32、EXFAT 如图: [attachimg]210142[/attachimg]  详情 回复 发表于 2015-2-24 20:35
是"说取文件偏移"也支持类似把ntfs分区挂载到X:\part_D这种文件夹里这种方式吗?  发表于 2015-2-24 19:43
回复

使用道具 举报

 楼主| 发表于 2015-2-24 20:35:19 | 显示全部楼层
本帖最后由 mdyblog 于 2015-2-26 05:36 编辑

mdyblog 发表于 2015-2-24 05:10
2:
53版加了个很好的功能:
┃    │    │※查询文件位置: ENVI ?PE变量名=FPOS,文件名                ...


>>是"说取文件偏移"也支持类似把ntfs分区挂载到X:\part_D这种文件夹里这种方式吗?  发表于 半小时前
--------------------
是的, 支持。
支持NTFS、FAT、FAT32、EXFAT
获得的就是 在分区中的偏移。

ENVI ?,,,&&POS,&&BLKS,&&Dev=FPOS,D:\DOC\menu.lst
MESS. %&BLKS%  %&POS%
//1 1323008 3274


如图:
00103.png


//1323008 3274
你用这个数据可以直接从磁盘读取 menu.lst的内容:
  1. GETF#  %Dev%,1323008#3274,&V
  2. CODE **-UTF8,&V,**-UNI,&VD   
  3. MESS. %VD%
复制代码


下面啰嗦点:
  1. CALC  Part1BASE=20979908608    //part读取的分区起始
  2. CALC  P=%Part1BASE% + 1323008
  3. GETF#  \\.\PhysicalDrive1,%P%#3274,&V
  4. CODE **-UTF8,&V,**-UNI,&VD   
  5. MESS. %VD%
复制代码

结果:
00102.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-17 13:59

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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