无忧启动论坛

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

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

    [复制链接]
9091#
发表于 2015-2-22 16:05:02 | 只看该作者

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

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

使用道具 举报

9092#
 楼主| 发表于 2015-2-22 16:39:10 | 只看该作者
ling3882688 发表于 2015-2-22 15:41
谢谢M大。
还有个问题,HASH值比较的话属于字符串还是数值?

字符串比较。

点评

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

使用道具 举报

9093#
发表于 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
回复

使用道具 举报

9094#
 楼主| 发表于 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
回复

使用道具 举报

9095#
发表于 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
回复

使用道具 举报

9096#
 楼主| 发表于 2015-2-22 17:56:02 | 只看该作者
ling3882688 发表于 2015-2-22 17:37
ENVI hPPP=D0DA59236ED6B0DF8E9DADC394A00274902B37D3
ENVI PPP=D0DA59236ED6B0DF8E9DADC394A00274902 ...

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

效果:

点评

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

使用道具 举报

9097#
发表于 2015-2-22 18:02:56 | 只看该作者
本帖最后由 ling3882688 于 2015-2-22 18:08 编辑
mdyblog 发表于 2015-2-22 17:56
最新版(52)测试包:


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

使用道具 举报

9098#
发表于 2015-2-22 18:09:04 | 只看该作者
mdyblog 发表于 2015-2-22 17:56
最新版(52)测试包:

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

点评

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

使用道具 举报

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

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

使用道具 举报

9100#
 楼主| 发表于 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  

回复

使用道具 举报

9101#
 楼主| 发表于 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
回复

使用道具 举报

9102#
 楼主| 发表于 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


如图:



//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%
复制代码

结果:
回复

使用道具 举报

9103#
发表于 2015-2-26 11:15:53 | 只看该作者
mdyblog 发表于 2015-2-22 14:45
1:

// CheckHybridMBR 返回名 磁盘号  

返回值都是MBR,怎么判断是否是混合磁盘呢?

点评

你确认你那是混合分区表吗? 如果是,那么 pecmd part -gui 【导出】 分区表,传上来看看。  详情 回复 发表于 2015-2-26 11:31
回复

使用道具 举报

9104#
 楼主| 发表于 2015-2-26 11:31:56 | 只看该作者
ling3882688 发表于 2015-2-26 11:15
返回值都是MBR,怎么判断是否是混合磁盘呢?

你确认你那是混合分区表吗?
如果是,那么
pecmd part  -gui

【导出】 分区表,传上来看看。

点评

好的,稍等。  详情 回复 发表于 2015-2-26 11:34
回复

使用道具 举报

9105#
发表于 2015-2-26 11:34:37 | 只看该作者
mdyblog 发表于 2015-2-26 11:31
你确认你那是混合分区表吗?
如果是,那么
pecmd part  -gui

好的,稍等。
回复

使用道具 举报

9106#
发表于 2015-2-26 11:46:36 | 只看该作者
本帖最后由 ling3882688 于 2015-2-26 12:02 编辑
mdyblog 发表于 2015-2-26 11:31
你确认你那是混合分区表吗?
如果是,那么
pecmd part  -gui


分区信息.rar (471.85 KB, 下载次数: 6)

点评

按照 你的分区表, 运行显示的 是HMBR(混合分区表)啊!  详情 回复 发表于 2015-2-26 13:09
回复

使用道具 举报

9107#
 楼主| 发表于 2015-2-26 13:09:43 | 只看该作者

按照 你的分区表,
运行显示的 是HMBR(混合分区表)啊!



是不是你的PECMD版本不够。
用来新版的 PART。

低版改下: CheckHybridMBR.可用低版.zip (535 Bytes, 下载次数: 3)

点评

我用的是刚下载的PECMD,25号的。  详情 回复 发表于 2015-2-26 14:10
回复

使用道具 举报

9108#
发表于 2015-2-26 14:10:29 | 只看该作者
mdyblog 发表于 2015-2-26 13:09
按照 你的分区表,
运行显示的 是HMBR(混合分区表)啊!

我用的是刚下载的PECMD,25号的。

点评

//示例: CheckHybridMBR &&MBR 1 MESS. %&MBR% ---------------------------- 这个磁盘号1, 指第2个磁盘。 要依实际的 而变。  详情 回复 发表于 2015-2-26 14:38
回复

使用道具 举报

9109#
 楼主| 发表于 2015-2-26 14:38:22 | 只看该作者
ling3882688 发表于 2015-2-26 14:10
我用的是刚下载的PECMD,25号的。

//示例:
CheckHybridMBR  &&MBR  1
MESS. %&MBR%
----------------------------
这个磁盘号1, 指第2个磁盘。 要依实际的 而变。

点评

只需要判断0xEE就可以吗?  详情 回复 发表于 2015-2-26 14:52
好了,搞定了,第一磁盘应该是0。CheckHybridMBR &&MBR 0  详情 回复 发表于 2015-2-26 14:46
回复

使用道具 举报

9110#
发表于 2015-2-26 14:46:05 | 只看该作者
mdyblog 发表于 2015-2-26 14:38
//示例:
CheckHybridMBR  &&MBR  1
MESS. %&MBR%

好了,搞定了,第一磁盘应该是0。CheckHybridMBR  &&MBR  0
回复

使用道具 举报

9111#
发表于 2015-2-26 14:52:29 | 只看该作者
本帖最后由 ling3882688 于 2015-2-26 15:20 编辑
mdyblog 发表于 2015-2-26 14:38
//示例:
CheckHybridMBR  &&MBR  1
MESS. %&MBR%


只需要判断0xEE就可以吗?
$%&V%=0xEE这里写成字符串比较符行不?|%&V%=0xEE

但是这样判断貌似不十分准确,手动修改的0xEE,执行之后也会判断为HMBR.



红色的为正常的HybridMBR
蓝色为不正常的HybridMBR

点评

1: 数字比较才对。 2: 示例只考虑正常情况。至于那些“伪造者”, 永远排除不完的。 这只是个“抛砖引玉”且“基本够用”。 你说的那是“高手”的事了。  详情 回复 发表于 2015-2-26 17:20
回复

使用道具 举报

9112#
 楼主| 发表于 2015-2-26 17:20:42 | 只看该作者
本帖最后由 mdyblog 于 2015-2-26 17:24 编辑
ling3882688 发表于 2015-2-26 14:52
只需要判断0xEE就可以吗?
$%&V%=0xEE这里写成字符串比较符行不?|%&V%=0xEE


1: 数字比较才对。
数字比价 238=0xEE
字符串比较: 238<>0xEE
原则: 凡是基于数值比较,而不在乎书写形式的,都得用数字比较.


2: 示例只考虑正常情况。至于那些“伪造者”, 永远排除不完的。
  这只是个“抛砖引玉”且“基本够用”。
  你说的那是“高手”的事了。

点评

想使用PART 命令删除所有分区,但是不想0#1 0#2这样一个一个删,可以怎么写?  详情 回复 发表于 2015-2-27 12:37
说的是,感谢M大。  详情 回复 发表于 2015-2-26 17:29
回复

使用道具 举报

9113#
发表于 2015-2-26 17:29:55 | 只看该作者
mdyblog 发表于 2015-2-26 17:20
1: 数字比较才对。
数字比价 238=0xEE
字符串比较: 2380xEE

说的是,感谢M大。
回复

使用道具 举报

9114#
发表于 2015-2-26 23:22:21 | 只看该作者
问2个问题:
envi &VVVVV=%USERPROFILE%\Local Settings, 怎样定义能够让%USERPROFILE%不展开?

关于PECMDEDIT的,它能直接编辑内部资源吗?比如PECMDEDIT PECMD.EXE#101
如果PECMDEDIT被导入到了PECMD.EXE中,能直接编辑内部脚本吗?比如EXEC --exe:#100=PECMDEDIT.EXE #101

点评

1: 用标准模式 ENVI^ EnviMode=1,且%用%%。 ENVI^ EnviMode=1 envi &VVVVV=%%USERPROFILE%%\Local Settings, 怎样定义能够让%USERPROFILE%不展开? 2: 关于PECMDEDIT的,它能直接编辑内部资源吗?比如PECM  详情 回复 发表于 2015-2-27 13:59
回复

使用道具 举报

9115#
发表于 2015-2-27 12:37:14 | 只看该作者
本帖最后由 ling3882688 于 2015-2-27 12:53 编辑
mdyblog 发表于 2015-2-26 17:20
1: 数字比较才对。
数字比价 238=0xEE
字符串比较: 2380xEE


想使用PART 命令删除所有分区,但是不想0#1 0#2这样一个一个删,可以怎么写?
还有个问题,PART 命令能否支持将分区转换为Hybrid_MBR分区呢?

点评

先创建GPT,再GPT转混合。 ENVI GPT1={EBD0A0A2-B9E5-4433-87C0-68B6B72699C7} ENVI GPT2=0x0000000000000000 "Basic data partition" ENVI GUIDX=BC65AB2C-B5AF-4197-92B2-00E808FDEE ----------------先  详情 回复 发表于 2015-2-27 14:19
1: 想使用PART 命令删除所有分区, 1) 用PUTF PUTF -dd -len=64 \\.\PhysicalDrive1,0x1BE,zero //后面还要同part 刷新,或拔插U盘。 2)无论原来多少个分区, 也无论是GPT还是MBR, 4个 part 就  详情 回复 发表于 2015-2-27 14:18
回复

使用道具 举报

9116#
 楼主| 发表于 2015-2-27 13:59:37 | 只看该作者
sp_star 发表于 2015-2-26 23:22
问2个问题:
envi &VVVVV=%USERPROFILE%\Local Settings, 怎样定义能够让%USERPROFILE%不展开?

1: 用标准模式 ENVI^ EnviMode=1,且%用%%。
ENVI^ EnviMode=1
envi &VVVVV=%%USERPROFILE%%\Local Settings, 怎样定义能够让%USERPROFILE%不展开?


2:
关于PECMDEDIT的,它能直接编辑内部资源吗?比如PECMDEDIT PECMD.EXE#101
如果PECMDEDIT被导入到了PECMD.EXE中,能直接编辑内部脚本吗?比如EXEC --exe:#100=PECMDEDIT.EXE #101
-------------------
不支持。

点评

多谢!  详情 回复 发表于 2015-2-27 14:15
回复

使用道具 举报

9117#
发表于 2015-2-27 14:15:03 | 只看该作者
mdyblog 发表于 2015-2-27 13:59
1: 用标准模式 ENVI^ EnviMode=1,且%用%%。
ENVI^ EnviMode=1
envi &VVVVV=%%USERPROFILE%%\Local Sett ...

多谢!
回复

使用道具 举报

9118#
 楼主| 发表于 2015-2-27 14:18:29 | 只看该作者
本帖最后由 mdyblog 于 2015-2-27 14:55 编辑
ling3882688 发表于 2015-2-27 12:37
想使用PART 命令删除所有分区,但是不想0#1 0#2这样一个一个删,可以怎么写?
还有个问题,PART 命令 ...




1:
想使用PART 命令删除所有分区,

1) 用PUTF
PUTF -dd  -len=64 \\.\PhysicalDrive1,0x1BE,zero
//后面还要同part 刷新,或拔插U盘。



2)无论原来多少个分区, 也无论是GPT还是MBR, 4个 part 就够了
PART -force  -mbr  -super del 1#1
PART -force  -mbr  -super del 1#2
PART -force  -mbr  -super del 1#3
PART -force  -mbr  -super -up -hup del 1#4



太野蛮了吧!
一般还是一个一个的删吧。

上面2种方法, 都会回到初始MBR状态。



回复

使用道具 举报

9119#
 楼主| 发表于 2015-2-27 14:19:20 | 只看该作者
本帖最后由 mdyblog 于 2015-2-27 14:21 编辑
ling3882688 发表于 2015-2-27 12:37
想使用PART 命令删除所有分区,但是不想0#1 0#2这样一个一个删,可以怎么写?
还有个问题,PART 命令 ...


先创建GPT,再用"-mbr -force" GPT转混合MBR。

ENVI GPT1={EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}  
ENVI GPT2=0x0000000000000000  "Basic data partition"
ENVI GUIDX=BC65AB2C-B5AF-4197-92B2-00E808FDEE
----------------先创建GPT--------------------
PART  -up -gpt init 1
PART  -up -super -gpt -cmp 1#1  %GPT1%   1G   5G   %GUIDX%01  %GPT2%
---------------GPT转混合--------------------
PART  -mbr -force -up -super  1#2  -a 0x07   1G   5G

点评

谢谢M大。  详情 回复 发表于 2015-2-27 14:40
回复

使用道具 举报

9120#
发表于 2015-2-27 14:40:03 | 只看该作者
mdyblog 发表于 2015-2-27 14:19
先创建GPT,再用"-mbr -force" GPT转混合MBR。

ENVI GPT1={EBD0A0A2-B9E5-4433-87C0-68B6B72699C7}   ...

谢谢M大。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-27 07:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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