无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: mdyblog
打印 上一主题 下一主题

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

    [复制链接]
9211#
 楼主| 发表于 2015-4-7 16:56:41 | 只看该作者
本帖最后由 mdyblog 于 2015-4-7 16:59 编辑
ling3882688 发表于 2015-4-7 16:29
好的,那我等你查完试试吧。
不明白为什么这个GUID类型这么难改,是本身就不好处理吗?


参数太多。

有时需要 默认(不输入 就默认 固定的值,如名字串),有时需要 不变。
需要2个特别符号,一个是默认, 一个是不变。

语法表达起来很麻烦。

还要避免不完整信息。。。。。都考虑。。复杂啊。
最简单---每次输入全部参数。(化繁为简)
回复

使用道具 举报

9212#
发表于 2015-4-10 16:50:46 | 只看该作者
Is there a simple way to convert path Windows -> Linux? // 有没有转换路径的简单方法
\boot\syslinux -> /boot/syslinux
How to assign the letter for disk partition? // 如何分配盘符的磁盘分区?
hdd3#1 -> G:
------------------------
对不起,翻译谷歌

点评

1: Is there a simple way to convert path Windows -> Linux? // 有没有转换路径的简单方法 \boot\syslinux -> /boot/syslinux ---- SED LP=0,\\,/,\boot\syslinux MESS. %LP% 2: How to assign  详情 回复 发表于 2015-4-10 19:53
回复

使用道具 举报

9213#
 楼主| 发表于 2015-4-10 19:53:57 | 只看该作者
weconty 发表于 2015-4-10 16:50
Is there a simple way to convert path Windows -> Linux? // 有没有转换路径的简单方法
\boot\syslinux  ...


1:
Is there a simple way to convert path Windows -> Linux? // 有没有转换路径的简单方法
\boot\syslinux -> /boot/syslinux
----
SED LP=0,\\,/,\boot\syslinux
MESS. %LP%


2:
How to assign the letter for disk partition? // 如何分配盘符的磁盘分区?
hdd3#1 -> G:
------------------
SHOW 3#1,G:     //物理号
SHOW 3:1,G:       //逻辑号

//磁盘号从0 开始。 3是第4个磁盘。
//分区号从1开始。


回复

使用道具 举报

9214#
发表于 2015-4-10 20:17:56 | 只看该作者
mdyblog, thank you! And special thanks for the utility. It is a pity that there is no help in English. // 谢谢!并特别感谢实用。这是一个遗憾,没有在英语没有帮助。

点评

最新版有英文帮助----感谢ddsony 参见 9720#  详情 回复 发表于 2015-4-10 20:40
回复

使用道具 举报

9215#
 楼主| 发表于 2015-4-10 20:40:00 | 只看该作者
weconty 发表于 2015-4-10 20:17
mdyblog, thank you! And special thanks for the utility. It is a pity that there is no help in Englis ...

最新版有英文帮助----感谢ddsony

参见 9720#

点评

请教一个问题,看看有办法吗? PECMD如何创建一个任意长度的二进制变量? 如何将另一个变量的内容拷贝到这个变量的偏置200处?  详情 回复 发表于 2015-4-10 22:20
回复

使用道具 举报

9216#
发表于 2015-4-10 22:20:17 | 只看该作者
mdyblog 发表于 2015-4-10 20:40
最新版有英文帮助----感谢ddsony

参见 9720#

请教一个问题,看看有办法吗?
PECMD如何创建一个任意长度的二进制变量? 如何将另一个变量的内容拷贝到这个变量的偏置200处?

点评

1: 如果是普通的。 CALC -base=2 就可以 2:如果是超长的,比如1000位。 字串拼 SET BSTR=%BSTR1%%BSTR2%.... 3:你是要 二进制 字符串0b110011100011100 (可以打印出的) 还是一段 二进制内存(不可以  详情 回复 发表于 2015-4-11 07:28
回复

使用道具 举报

9217#
发表于 2015-4-10 23:19:23 | 只看该作者
mdyblog, very interesting. I integrate the internal english help, but could not get a picture, as you have. //非常有趣的。我整合内部的英语帮助,但无法得到的图片,你有。

点评

English:  详情 回复 发表于 2015-4-11 07:35
回复

使用道具 举报

9218#
 楼主| 发表于 2015-4-11 07:28:35 | 只看该作者
本帖最后由 mdyblog 于 2015-4-11 07:37 编辑
sp_star 发表于 2015-4-10 22:20
请教一个问题,看看有办法吗?
PECMD如何创建一个任意长度的二进制变量? 如何将另一个变量的内容拷贝到 ...


1: 如果是普通的。
CALC -base=2 就可以

2:如果是超长的,比如1000位。
字串拼
SET BSTR=%BSTR1%%BSTR2%....

3:你是要 二进制 字符串0b110011100011100 (可以打印出的)
还是一段 二进制内存(不可以打印出的)

二进制内存: 写数据就可以,无所谓什么进制。进制是人脑的主观形式。电脑中都一样。

SET$   &DATTo=*100 0x31 0x30 0x30 *800 0    //字符
SET$# &DATTo=*100 0x31 0x30 0x30 *800 0    //字节


4:
用MemeryCopy (支持内存重叠,前后不同的顺序,放心)
  1. LOGS **2 * X.LOG
  2. SET$ &DATTo=*100 0x31 0x30 0x30 *800 0
  3. MESS. %DATTo%
  4. SET &DATFrom=ABCDEFGHI

  5. ENVI-addr  &&p1;&&len1=&DATFrom
  6. ENVI-addr  &&p2;&&len2=&DATTo
  7. CALC   pTo=%p2% + 200
  8. --- [%p1% %len1% %p2% %len2%]

  9. CALL $--c  .,MemoryCopy,#%pTo%,#%p1%,#%len1%
  10. MESS. %DATTo%
复制代码


//注意DATTo,本身要有那么长,否则程序崩溃。
//注意一个字符是2个字节。

点评

谢谢!MemoryCopy正是我需要的。 之前的问题可能提得不太清楚,我想多次读取一定长度的数据,把它们拼接起来。因为数据中可能有连续的0,ENVI命令似乎不能用,ENVI-copy可以用,但好像不能拼接。  详情 回复 发表于 2015-4-11 10:50
回复

使用道具 举报

9219#
 楼主| 发表于 2015-4-11 07:35:31 | 只看该作者
weconty 发表于 2015-4-10 23:19
mdyblog, very interesting. I integrate the internal english help, but could not get a picture, as yo ...

English:

PECMD_Eng.7z

835.9 KB, 下载次数: 6

回复

使用道具 举报

9220#
发表于 2015-4-11 10:50:02 | 只看该作者
mdyblog 发表于 2015-4-11 07:28
1: 如果是普通的。
CALC -base=2 就可以

谢谢!MemoryCopy正是我需要的。
之前的问题可能提得不太清楚,我想多次读取一定长度的数据,把它们拼接起来。因为数据中可能有连续的0,ENVI命令似乎不能用,ENVI-copy可以用,但好像不能拼接。

点评

还是MemoryCopy  详情 回复 发表于 2015-4-11 10:58
回复

使用道具 举报

9221#
 楼主| 发表于 2015-4-11 10:58:19 | 只看该作者
本帖最后由 mdyblog 于 2015-4-11 11:05 编辑
sp_star 发表于 2015-4-11 10:50
谢谢!MemoryCopy正是我需要的。
之前的问题可能提得不太清楚,我想多次读取一定长度的数据,把它们拼接 ...


还是MemoryCopy
LOGS **2 * X.LOG
SET$  &DATTo=*1M  0  //1M字符的缓冲区  

SET  &off=0  //本次写入位置
SET  &DATFrom=    //单次临时接受区

ENVI-addr  &&p2;&&len2=&DATTo

//读取到 &DATFrom...
ENVI-addr  &&p1;&&len1=&DATFrom
TEAM CALC   pTo=%p2% + %off%|  CALC  off=%off%+ %len1%
CALL $--c  .,MemoryCopy,#%pTo%,#%p1%,#%len1%

//读取到 &DATFrom...
ENVI-addr  &&p1;&&len1=&DATFrom
TEAM CALC   pTo=%p2% + %off%|  CALC  off=%off%+ %len1%
CALL $--c  .,MemoryCopy,#%pTo%,#%p1%,#%len1%


//读取到 &DATFrom...
ENVI-addr  &&p1;&&len1=&DATFrom
TEAM CALC   pTo=%p2% + %off%|  CALC  off=%off%+ %len1%
CALL $--c  .,MemoryCopy,#%pTo%,#%p1%,#%len1%

...


MESS. %DATTo%

点评

多谢M大,自己试了几次,已经搞定了。  详情 回复 发表于 2015-4-11 11:53
回复

使用道具 举报

9222#
发表于 2015-4-11 11:53:56 | 只看该作者
mdyblog 发表于 2015-4-11 10:58
还是MemoryCopy
LOGS **2 * X.LOG
SET$  &DATTo=*1M  0  //1M字符的缓冲区  

多谢M大,自己试了几次,已经搞定了。

点评

搞定 就好!  详情 回复 发表于 2015-4-11 13:54
回复

使用道具 举报

9223#
 楼主| 发表于 2015-4-11 13:54:47 | 只看该作者
sp_star 发表于 2015-4-11 11:53
多谢M大,自己试了几次,已经搞定了。

搞定 就好!

点评

又有个新问题: CALL $--c .,MemoryCopy 集成到完整的PECMD.EXE里没问题,但集成到DLL版的exe文件中,似乎不能工作。是不是依赖什么内置资源啊?  详情 回复 发表于 2015-4-11 15:30
回复

使用道具 举报

9224#
发表于 2015-4-11 15:30:14 | 只看该作者

又有个新问题:
CALL $--c  .,MemoryCopy 集成到完整的PECMD.EXE里没问题,但集成到DLL版的exe文件中,似乎不能工作。是不是依赖什么内置资源啊?

点评

试试: CALL $--c %&MyName%,MemoryCopy  详情 回复 发表于 2015-4-11 17:58
回复

使用道具 举报

9225#
发表于 2015-4-11 16:49:54 | 只看该作者
本帖最后由 ling3882688 于 2015-4-11 16:54 编辑

我想获取分数数量,下面是以前的代码有点长,也不知道是不是准确,有没有更简单的方法?最好还能判断主分区数量和逻辑分区数量。
_SUB ListPPt
        ENVI^ FORCELOCAL=1
        SET &hd=%~1
        CALC #hd=%hd%
        PART list part %hd%,&&pts
        SET &ppts=
        FORX * %pts%,&&pt, IFEX $%pt%>=0, TEAM  PART -phy# list part %hd%:%pt%,&&v1| MSTR &&ppt=<8>%v1%| SET ppts=%ppts%   %ppt% %pt%
        MSTR ppts=4,0,%ppts%
        ENVI-ret %~2=%ppts%
_END
ListPPt 0 &&ppts
RSTR 分区数=1,%&ppts%
MESS %分区数%

点评

_SUB ListPPt ENVI^ FORCELOCAL=1 SET &hd=%~1 CALC #hd=%hd% PART list part %hd%,&&pts SET &nall=0 SET &nmain=0 FORX * %pts%,&&pt,  详情 回复 发表于 2015-4-11 18:33
回复

使用道具 举报

9226#
发表于 2015-4-11 17:44:01 | 只看该作者
本帖最后由 ling3882688 于 2015-4-11 17:46 编辑

总线类型 BusTypeUnknown = 0   BusTypeScsi=1, BusTypeAtapi, BusTypeAta, BusType1394
BusTypeSsa, BusTypeFibre, BusTypeUsb, BusTypeRAID, BusTypeiScsi, BusTypeSas
BusTypeSata, BusTypeSd, BusTypeMmc, BusTypeMax, BusTypeMaxReserved=0x7F ,<0出错

通过part list disk返回值中总线类型是数字,分别是怎么对应的呢?移动硬盘是7,本地硬盘是11.
因为part list disk返回值最后一位都是F,所以应该是能通过总线这里进一步判断是不是移动硬盘吧?

点评

BusTypeUnknown = 0 BusTypeScsi=1, BusTypeAtapi, BusTypeAta, BusType1394 BusTypeSsa, BusTypeFibre, BusTypeUsb, BusTypeRAID, BusTypeiScsi, BusTypeSas BusTypeSata, BusTypeSd, BusTypeMmc, BusTypeMax  详情 回复 发表于 2015-4-11 18:20
回复

使用道具 举报

9227#
 楼主| 发表于 2015-4-11 17:58:48 | 只看该作者
sp_star 发表于 2015-4-11 15:30
又有个新问题:
CALL $--c  .,MemoryCopy 集成到完整的PECMD.EXE里没问题,但集成到DLL版的exe文件中, ...

试试:
CALL $--c  %&MyName%,MemoryCopy

点评

试过了,还是不行。 但在同一目录有PECMD.DLL的情况下,CALL $--c PECMD.DLL,MemoryCopy可以。  详情 回复 发表于 2015-4-11 18:52
回复

使用道具 举报

9228#
 楼主| 发表于 2015-4-11 18:20:24 | 只看该作者
ling3882688 发表于 2015-4-11 17:44
总线类型 BusTypeUnknown = 0   BusTypeScsi=1, BusTypeAtapi, BusTypeAta, BusType1394
BusTypeSsa, BusT ...

BusTypeUnknown = 0   BusTypeScsi=1, BusTypeAtapi, BusTypeAta, BusType1394
BusTypeSsa, BusTypeFibre, BusTypeUsb, BusTypeRAID, BusTypeiScsi, BusTypeSas
BusTypeSata, BusTypeSd, BusTypeMmc, BusTypeMax
从0开始和数字对应。


//移动硬盘是7,本地硬盘是1
【BusTypeUsb 7 + F 】, 一般就这样了。 这样也可能是 F格式的U盘。 没办法区别2者。
  
回复

使用道具 举报

9229#
 楼主| 发表于 2015-4-11 18:33:39 | 只看该作者
ling3882688 发表于 2015-4-11 16:49
我想获取分数数量,下面是以前的代码有点长,也不知道是不是准确,有没有更简单的方法?最好还能判断主分区 ...

_SUB ListPPt
        ENVI^ FORCELOCAL=1
        SET &hd=%~1
        CALC #hd=%hd%
        PART list part %hd%,&&pts
        SET &nall=0
        SET &nmain=0
        FORX * %pts%,&&pt,
        {
            LSTR &&c0=1,%pt%
            FIND $%c0%=@, EXIT -  //扩展
            TEAM  PART -phy# list part %hd%:%pt%,&&v1| MSTR &&ltp,&&ppt=<2><8>%v1%
            IFEX $%ltp%<1, EXIT -
            CALC nall=%nall% + 1
            IFEX $%ppt%<=4,  CALC nmain=%nmain% + 1
        }
        ENVI-ret %~2=%nall%   %nmain%
_END

ListPPt 0 &&ppts
MSTR 分区数,主分区数=<1*>%&ppts%
MESS %分区数%   %主分区数%

点评

谢谢M大。  详情 回复 发表于 2015-4-11 21:18
回复

使用道具 举报

9230#
发表于 2015-4-11 18:52:20 | 只看该作者
mdyblog 发表于 2015-4-11 17:58
试试:
CALL $--c  %&MyName%,MemoryCopy

试过了,还是不行。
但在同一目录有PECMD.DLL的情况下,CALL $--c  PECMD.DLL,MemoryCopy可以。

点评

可能是你用的PECMD.EXE版本低的原因。 需要最新的 PECMD.EXE/DLL母体就才可以。  详情 回复 发表于 2015-4-11 20:02
回复

使用道具 举报

9231#
发表于 2015-4-11 19:24:30 | 只看该作者
本帖最后由 feiyike 于 2015-4-11 19:26 编辑


菜鸟请教:怎样加载指定了分区类型的分区,比如上图中的磁盘1第4分区
用批处理自动加载

点评

//ShowType 磁盘号 分区类型 _SUB ShowType ENVI^ FORCELOCAL=1 SET &hd=%~1 SET &mtp=%~2 //1 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 GPT 2110685184 61642715136 0  详情 回复 发表于 2015-4-11 20:21
回复

使用道具 举报

9232#
 楼主| 发表于 2015-4-11 20:02:10 | 只看该作者
本帖最后由 mdyblog 于 2015-4-11 20:04 编辑
sp_star 发表于 2015-4-11 18:52
试过了,还是不行。
但在同一目录有PECMD.DLL的情况下,CALL $--c  PECMD.DLL,MemoryCopy可以。


可能是你用的PECMD.EXE版本低的原因。
需要最新的 PECMD.EXE/DLL母体就才可以。

也可能是 程序需要为这种情况改改。

点评

我用的应该比较新了,8.88.55。最新的还没有试过。 另外,即使用最新版,在DLL版中,RAMD ImDisk*&V*和MOUN -udm -udfs -udm- 都失效了,在PECMD.EXE中是可以的。应该就是扇区映射失效了。有空可以看看。  详情 回复 发表于 2015-4-11 20:14
回复

使用道具 举报

9233#
发表于 2015-4-11 20:14:57 | 只看该作者
mdyblog 发表于 2015-4-11 20:02
可能是你用的PECMD.EXE版本低的原因。
需要最新的 PECMD.EXE/DLL母体就才可以。

我用的应该比较新了,8.88.55。最新的还没有试过。
另外,即使用最新版,在DLL版中,RAMD ImDisk*&V*和MOUN -udm -udfs -udm- 都失效了,在PECMD.EXE中是可以的。应该就是扇区映射失效了。有空可以看看。

点评

可能吧。 现在有个亲爸 养父。 不知道 该找谁。因为用的人少。 我都不知道到底找谁合适---东西寄存在谁哪儿合适。 也没时间来仔细梳理代码。  详情 回复 发表于 2015-4-11 20:25
回复

使用道具 举报

9234#
 楼主| 发表于 2015-4-11 20:21:42 | 只看该作者
feiyike 发表于 2015-4-11 19:24
菜鸟请教:怎样加载指定了分区类型的分区,比如上图中的磁盘1第4分区
用批处理自动加载

//ShowType 磁盘号  分区类型
_SUB ShowType
        ENVI^ FORCELOCAL=1
        SET &hd=%~1
        SET &mtp=%~2
        //1  EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 GPT     2110685184    61642715136 0000000000000000 E6B0F947-1648-1E49-BF0C-60D5ED144D02   2  F:

        CALC #hd=%hd%
        PART list part %hd%,&&pts
        SET &nall=0
        SET &nmain=0
        FORX * %pts%,&&pt,
        {
            TEAM  PART -phy# list part %hd%:%pt%,&&v1| MSTR &&ltp,&&ppt=<2><8>%v1%
            FIND $%mtp%<>%ltp%, EXIT -
            TEAM FDRV *idlec &&Drvs=*:| MSTR &&Drv1=<1>%Drvs%
            SHOW %hd%#%ppt%,%Drv1%
        }
_END
LOGS * X.LOG
ShowType 0  EBD0A0A2-B9E5-4433-87C0-68B6B72699C7

点评

再请教: 1. 此代码只能查找磁盘0,如果改为 ShowType f:0 则CALC 不识别, 2. 已挂载分区会重复挂载 3. 卸载指定类型分区怎么处理 涉及磁盘分区操作,实在不敢随便玩,多谢  详情 回复 发表于 2015-4-12 08:30
回复

使用道具 举报

9235#
 楼主| 发表于 2015-4-11 20:25:29 | 只看该作者
sp_star 发表于 2015-4-11 20:14
我用的应该比较新了,8.88.55。最新的还没有试过。
另外,即使用最新版,在DLL版中,RAMD ImDisk*&V*和MO ...

可能吧。
现在有个亲爸 养父。
不知道 该找谁。因为用的人少。 我都不知道到底找谁合适---东西寄存在谁哪儿合适。
也没时间来仔细梳理代码。

点评

心血来潮,试了一下。不用管也是可以的,确实没多大用。  详情 回复 发表于 2015-4-11 20:30
回复

使用道具 举报

9236#
发表于 2015-4-11 20:28:56 | 只看该作者
麻烦看一下:http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
关于桌面刷新的问题。
回复

使用道具 举报

9237#
发表于 2015-4-11 20:30:20 | 只看该作者
mdyblog 发表于 2015-4-11 20:25
可能吧。
现在有个亲爸 养父。
不知道 该找谁。因为用的人少。 我都不知道到底找谁合适---东西寄存在谁 ...

心血来潮,试了一下。不用管也是可以的,确实没多大用。
回复

使用道具 举报

9238#
发表于 2015-4-11 21:18:39 | 只看该作者
mdyblog 发表于 2015-4-11 18:33
_SUB ListPPt
        ENVI^ FORCELOCAL=1
        SET &hd=%~1

谢谢M大。
回复

使用道具 举报

9239#
发表于 2015-4-11 23:55:41 | 只看该作者
本帖最后由 ling3882688 于 2015-4-12 00:01 编辑

一个字符串由大小写字母和数字还有标点符号组成,如何只提取里面的数字,但是数字和字母长度位置不固定。
字符串例1:iAAbb5,1或者iA5,1BCD 或者iA5,B1dc
字符串例2:iBM13,bc2或者iBt13h,p2或者13BkL,2f
想把里面的数字摘出来,上面获取的结果例1应该是51 例2应该是132

点评

SED V=0,[^0-9],,iAAbb5XYZ1 MESS. 【%V%】  详情 回复 发表于 2015-4-12 00:53
回复

使用道具 举报

9240#
 楼主| 发表于 2015-4-12 00:53:14 | 只看该作者
ling3882688 发表于 2015-4-11 23:55
一个字符串由大小写字母和数字还有标点符号组成,如何只提取里面的数字,但是数字和字母长度位置不固定。
...

SED V=0,[^0-9],,iAAbb5XYZ1
MESS. 【%V%】
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-27 05:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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