无忧启动论坛

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

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

    [复制链接]
9031#
 楼主| 发表于 2015-2-7 04:38:11 | 只看该作者
本帖最后由 mdyblog 于 2015-2-7 04:41 编辑



拔插一下U盘,2者就同步了。

如图表:
  1. 磁盘:2
  2.   磁盘信息 磁盘号   大小(字节)         柱面数 磁头数 扇数 扇区 媒体     签名 总线
  3.               2    63786975232           7754    255   63  512   12 55276D56  7 MBR F
  4.   字符说明 激活 __本分区起始__ 分区 __本分区结束__ _______本分区______ ______本分区_______
  5.   激活为0x80    磁头_扇区_柱面 类型 磁头_扇区_柱面 _____起始扇区号____ _____扇区总数______
  6.   主分区1: 0x00 0x00 0x02 0x00 0xEE 0x7F 0x0E 0x19 0x01 0x00 0x00 0x00 0x27 0x40 0x06 0x00
  7.   主分区2: 0x00 0x7F 0x0F 0x19 0xAF 0x5A 0xAF 0xAB 0x28 0x40 0x06 0x00 0x18 0x43 0xA1 0x00
  8.   主分区3: 0x00 0xBF 0x85 0xBB 0x0B 0x4A 0xFF 0x4B 0x00 0x88 0xAB 0x00 0x00 0x30 0x23 0x00
  9.   主分区4: 0x00 0x4B 0xC1 0x4B 0x07 0xFE 0xFF 0xCC 0x00 0xB8 0xCE 0x00 0x00 0x00 0x20 0x00
  10.   标志   : 0x55 0xAA
  11.   全部分区: 1   2   3   4
  12.   分区  类型 激活(1) 起始(字节)     长度(字节)    隐藏扇区     结尾(字节) 物理# 盘符
  13.      1  0xEE   0            512      209735168           1      209735680    1   
  14.      2  0xAF   0      209735680     5411057664      409640     5620793344    2   
  15.      3  0x0B   0     5755633664     1180696576    11241472     6936330240    3   
  16.      4  0x07   0     6936330240     1073741824    13547520     8010072064    4   
复制代码



回复

使用道具 举报

9032#
发表于 2015-2-7 11:02:38 | 只看该作者
mdyblog 发表于 2015-2-7 04:38
拔插一下U盘,2者就同步了。

如图表:

可是我的本地硬盘也是一样的情况。
回复

使用道具 举报

9033#
发表于 2015-2-7 11:34:45 | 只看该作者
mdyblog 发表于 2015-2-7 01:50
这样不行?
你试试。

//此BUG由搜索量过大造成,把搜索目录设置在文件较少的目录可以,同样的问题在DIR命令中也如此,只要超过了一定的量就如此,看来是变量限制导致的,
//如果让机器狂转10-20来分钟,还是可以启动的,只是这样,无法满足实际的使用要求
//另外,如果在FOR循环时开启logs,光是log文件就有恐怖的1G以上的个头,这个应该与for命令的循环设计有关,郁闷啊!
//呵呵,寒冷的一个晚上啊,不知楼主那边冷不?
//既然知道了问题所在,请楼主费心解决它好了.
查询问题,我问的不是不是这个控件存储的信息或是它的标题,而是这个控件本身在窗口中的标题名称,也就是说如何返回控件本身的名称,如果能查询到控件的类型就更好了,具体如:查询TABL1,获得控件类型-TABL;该控件名称-TABL1,就是如果这是一个TABL控件,希望可以查询到它的类型是(TABL),而在窗口中的名称是(TABL1)这样的回传信息,并赋值给变量.
附上可以测试DIR成功的完整代码,但不能到窗口:
//logs * x:\ccc.log
ENVI^ EnviMode=1
//设置换行符合分割符
ENVI$ TAB=09
ENVI$ NLC=0a
ENVI$ NL=0d 0a
TEAM CALL cppt|WINDOWS1
_SUB WINDOWS1,L5T5W320H220,WinCMD功能演示,,%IconFile%#19,10,,-trap -size
    ENVI &TITLE1=#0xFF0000#0xD7FFD7+210:imte1%TAB%#0xFF0000#0xD7FFD7+30:imte2%TAB%#0xFF0000#0xD7FFD7+130:imte3
    ITEM ITEM1,L188T141W101H30,ITEM1,KILL \,
    TABL TABL1,L5T6W297H132,%&TITLE1%,%Df0%
_END
_SUB cppt
//c:\*.*  x:\windows\*.inf C:\*.INI
ENVI &sfdir=c:\*.*
TEAM DIR &INILIST /s /O:N %&sfdir%| MESS. %&INILIST%@#OK
//FORX /S /O:-N X:\windows\*.ini,&&f,0,
FORX *NL &INILIST,&&f,
{
                NAME -ext &f0=%&f%
        ENVI Df0=%&f0%%NLC%%Df0%
}
_END
回复

使用道具 举报

9034#
 楼主| 发表于 2015-2-7 11:52:38 | 只看该作者
ling3882688 发表于 2015-2-7 11:02
可是我的本地硬盘也是一样的情况。

>>本地硬盘
重启 机器
或执行 :
pecmd part  -up hupdate 1

1 是磁盘号,按实际。

回复

使用道具 举报

9035#
 楼主| 发表于 2015-2-7 11:58:28 | 只看该作者
本帖最后由 mdyblog 于 2015-2-7 12:14 编辑
2012yws@ 发表于 2015-2-7 11:34
//此BUG由搜索量过大造成,把搜索目录设置在文件较少的目录可以,同样的问题在DIR命令中也如此,只要超过了 ...

》》//此BUG由搜索量过大造成,把搜索目录设置在文件较少的目录可以,同样的问题在DIR命令中也如此,只要超过了一定的量就如此,看来是变量限制导致的,
你理解很特别。
一般人 认为 这是BUG。

在一个海量数据中搜索, 就是这样的效果。(win7/8的系统目录 海了去)
你要改变你的设计。避免“海量数据中搜索”。


所以以我上面说 “坑爹”的代码! 我手都点酸了。

回复

使用道具 举报

9036#
 楼主| 发表于 2015-2-7 12:04:04 | 只看该作者
本帖最后由 mdyblog 于 2015-2-7 12:12 编辑
2012yws@ 发表于 2015-2-7 11:34
//此BUG由搜索量过大造成,把搜索目录设置在文件较少的目录可以,同样的问题在DIR命令中也如此,只要超过了 ...


大概研究下说明。

对于一般控件 %控件名% 返回的就是标题名。
有些控件没有标题名,如TABL。 自己用变量保存需要的信息。


至于类型,类型 是不变的, 写程序的时候就知道了。一般不需要这个。

复杂的应用,  自己用过变量保存起来就就可以了。
比如 %LAB1.tp% 保存 "LABE"

回复

使用道具 举报

9037#
发表于 2015-2-7 12:32:50 | 只看该作者
本帖最后由 ling3882688 于 2015-2-7 12:34 编辑
mdyblog 发表于 2015-2-7 11:52
>>本地硬盘
重启 机器
或执行 :


重启和命令均无效。但是BOOTICE里显示的是正确的,稍后我上传我硬盘的分区表。
回复

使用道具 举报

9038#
发表于 2015-2-7 12:38:06 | 只看该作者
本帖最后由 ling3882688 于 2015-2-7 12:47 编辑
mdyblog 发表于 2015-2-7 11:52
>>本地硬盘
重启 机器
或执行 :

硬盘分区表.rar (63.42 KB, 下载次数: 2) Bootice和Diskgenius是一样的都是AF,diskpart显示0x07,PART -GUI导出结果显示一个是AF一个是07,那个分区格式是HFS.
回复

使用道具 举报

9039#
 楼主| 发表于 2015-2-7 14:19:33 | 只看该作者
本帖最后由 mdyblog 于 2015-2-7 14:21 编辑
ling3882688 发表于 2015-2-7 12:38
Bootice和Diskgenius是一样的都是AF,diskpart显示0x07,PART -GUI导出结果显示一个是AF一个是07,那个分 ...


HFS 的苹果的吧。

那可能苹果的驱动做了“手脚”, 自动将其系统的 AF “转译”  07,  系统认为其类型标识为07, 报告给应用程序的也是07.

diskpart显示的是系统类型, 所以是0x07


Bootice和Diskgenius等, 是自己分析磁盘, 显示的是磁盘存储的信息, 不受系统驱动的影响。所以是实际的0xAF

PART -GUI导出结果, 下半部分 显示的是系统类型, 所以是0x07
PART -GUI导出结果, 是自己分析磁盘,  显示的是磁盘存储的信息, 不受系统驱动的影响。所以是实际的0xAF


苹果 竟然干这种事。 可能是其驱动本身的限制吧,不报告成07,他的FS驱动可能直接忽略该分区。
   也就是说苹果的HFS驱动可能只认07的分区。
回复

使用道具 举报

9040#
发表于 2015-2-7 15:19:58 | 只看该作者
本帖最后由 2012yws@ 于 2015-2-7 16:20 编辑
mdyblog 发表于 2015-2-7 12:04
大概研究下说明。

对于一般控件 %控件名% 返回的就是标题名。


原来控件查询已经有这个功能,谢谢楼主
不过,对于for和dir的问题,我对比了cmd的dir和for,发现用DOS命令列出C盘的海量文件只要5-10秒左右,而读这个变量到MESS显示要10分钟以上甚至更多,还不一定成功!用pecmd的for和dir也如此,还有,就是窗口的文本和表格控件都不能一次载入这个极大地变量,这样子就断绝了相互交互的通路了,如果用分割的方式,虽然可以,但是过程很蛋疼啊.真是郁闷之极啊!!难道GUI的命令器都只能这样子了吗?

详细查看了DOS列出来的文件,只不过是区区的10万左右,这在现在的机器配置,根本是小巫,看来根本的还是命令的算法,倘若可行,请楼主好好的设计下这些相关命令的算法,谢谢,For与dir的测试暂时到此结束.

楼主可否暂时处理一下READ的处理速度,现在是蜗牛龟速,如果能够加快速度,或许这样配合DOS命令还有戏,否则只能放弃了.
回复

使用道具 举报

9041#
 楼主| 发表于 2015-2-7 15:55:12 | 只看该作者
2012yws@ 发表于 2015-2-7 15:19
原来控件查询已经有这个功能,谢谢楼主
不过,对于for和dir的问题,我对比了cmd的dir和for,发现用DOS命令 ...


1:
,发现用DOS命令列出C盘的海量文件只要5-10秒左右,而读这个变量到MESS显示要10分钟以上甚至更多,
(1)2命令等价吗?
你还是 把WCS脚本 和CMD传上来。
不要向印度佛教 那样在那对空谈。

比如是否都用了同样的排序。
(2)
是否 和谁先谁后有关(windows下后执行者可能快许多)


(3) 你的 wcs程序优化了吗? 对10万的数据,必须优化,不是闭眼随便一敲就可以的。


2:
你把 dir 的输出 10万左右 结果重定向到dir.txt, 传上来,看看。(不说的是10万行还是10万字符)。

3:
有些东西, 可能只是你没掌握!不一定是不行!
回复

使用道具 举报

9042#
发表于 2015-2-7 16:27:16 | 只看该作者
本帖最后由 2012yws@ 于 2015-2-7 16:30 编辑
mdyblog 发表于 2015-2-7 15:55
1:
,发现用DOS命令列出C盘的海量文件只要5-10秒左右,而读这个变量到MESS显示要10分钟以上甚至更多,
...


列表文件: tsl.7z (584.02 KB, 下载次数: 10)
和PECMD的DIR/FOR常用参数列出的模式一样
至于什么印度教,佛教什么的,我和它们没有关系.我只相信耶稣.
回复

使用道具 举报

9043#
 楼主| 发表于 2015-2-7 16:27:49 | 只看该作者
2012yws@ 发表于 2015-2-7 15:19
原来控件查询已经有这个功能,谢谢楼主
不过,对于for和dir的问题,我对比了cmd的dir和for,发现用DOS命令 ...

这里给个优化的。
从dir.txt读取。
87.6万字符
1.6万行
很快:加载0.02秒, 显示1.2秒。


程序和数据: BigTabl1.7z (71.38 KB, 下载次数: 6)
回复

使用道具 举报

9044#
 楼主| 发表于 2015-2-7 16:30:10 | 只看该作者
本帖最后由 mdyblog 于 2015-2-7 16:34 编辑
2012yws@ 发表于 2015-2-7 16:27
列表文件:
和PECMD的DIR/FOR常用参数列出的模式一样
至于什么印度教,佛教什么的,我和它们没有关系.我只 ...


也不慢的: 加载0.239秒, 显示 6.2秒。752万字符,  7.8万行。
回复

使用道具 举报

9045#
 楼主| 发表于 2015-2-7 16:36:26 | 只看该作者
2012yws@ 发表于 2015-2-7 15:19
原来控件查询已经有这个功能,谢谢楼主
不过,对于for和dir的问题,我对比了cmd的dir和for,发现用DOS命令 ...

直接 DIR命令捕捉也不慢。


程序: BigTabl2.zip (591 Bytes, 下载次数: 4)
回复

使用道具 举报

9046#
发表于 2015-2-7 18:30:31 | 只看该作者
mdyblog 发表于 2015-2-7 14:19
HFS 的苹果的吧。

那可能苹果的驱动做了“手脚”, 自动将其系统的 AF “转译”  07,  系统认为其 ...

如果确实是苹果在驱动上做了手脚,那如果我卸载苹果的驱动或者直接在PE里应该显示正常的吧,我测试看看。
回复

使用道具 举报

9047#
发表于 2015-2-7 18:39:53 | 只看该作者
本帖最后由 ling3882688 于 2015-2-7 18:46 编辑
mdyblog 发表于 2015-2-7 14:19
HFS 的苹果的吧。

那可能苹果的驱动做了“手脚”, 自动将其系统的 AF “转译”  07,  系统认为其 ...

PE里不加载苹果驱动的情况下正常,当然加载驱动后也正常,因为加载的驱动和正常系统下完整的驱动还是有区别的,所以M大分析的应该是极有可能的。那么问题来了,如何排除这种干扰,获取那个不受驱动影响的分区类型呢?
回复

使用道具 举报

9048#
 楼主| 发表于 2015-2-7 19:42:58 | 只看该作者
本帖最后由 mdyblog 于 2015-2-7 20:15 编辑
ling3882688 发表于 2015-2-7 18:39
PE里不加载苹果驱动的情况下正常,当然加载驱动后也正常,因为加载的驱动和正常系统下完整的驱动还是有区 ...


实际的类型:
GETF   \\.\PhysicalDrive1,0x1C2#1,&&tp1
GETF   \\.\PhysicalDrive1,0x1D2#1,&&tp2
GETF   \\.\PhysicalDrive1,0x1E2#1,&&tp3
GETF   \\.\PhysicalDrive1,0x1F2#1,&&tp4
MESS. %tp1% %tp2% %tp3% %tp4%
回复

使用道具 举报

9049#
发表于 2015-2-7 19:48:57 | 只看该作者
mdyblog 发表于 2015-2-7 19:42
实际的类型:
GETF   \\.\PhisicalDrive1,0x1C2#1,&&tp1
GETF   \\.\PhisicalDrive1,0x1D2#1,&&tp2

回复

使用道具 举报

9050#
 楼主| 发表于 2015-2-7 20:15:32 | 只看该作者

o , shi
GETF   \\.\PhysicalDrive1,0x1C2#1,&&tp1
GETF   \\.\PhysicalDrive1,0x1D2#1,&&tp2
GETF   \\.\PhysicalDrive1,0x1E2#1,&&tp3
GETF   \\.\PhysicalDrive1,0x1F2#1,&&tp4
MESS. %tp1% %tp2% %tp3% %tp4%
回复

使用道具 举报

9051#
发表于 2015-2-7 20:18:06 | 只看该作者
本帖最后由 ling3882688 于 2015-2-7 20:26 编辑
mdyblog 发表于 2015-2-7 20:15
o , shi
GETF   \\.\PhysicalDrive1,0x1C2#1,&&tp1
GETF   \\.\PhysicalDrive1,0x1D2#1,&&tp2


应该是这样,M大能大体给解释下吗?0x1C2#1,我不确定0#几是AF,所以想通过遍历下所有分区,然后找到这个0xAF的分区号,比如0#2。

GETF \\.\PhysicalDrive0,0x1C2#1,&&tp1
GETF \\.\PhysicalDrive0,0x1D2#1,&&tp2
GETF \\.\PhysicalDrive0,0x1E2#1,&&tp3
GETF \\.\PhysicalDrive0,0x1F2#1,&&tp4
MESS. %tp1% %tp2% %tp3% %tp4%


回复

使用道具 举报

9052#
发表于 2015-2-7 20:55:33 | 只看该作者
mdyblog 发表于 2015-2-7 16:36
直接 DIR命令捕捉也不慢。

        确实如楼主一样,而且楼主的代码写的实在很优美,也极其高效.其实我是半点吐槽的意思也没有的,我确实对命令还不是很了解.但我是很欣赏楼主的,因为你写的这个命令器已经是非常非常的棒了.
只是,在我个人写这个文件比较工具的时候,由于要使用到for/read等文本处理命令,而偏偏就出现了这样的问题,所以就有此感慨.因为即便在视觉呈现中处理出来了,而根源最后还得要回到如何解决可以快速处理文本字串的问题.
我很仔细的研究了楼主的代码,确实非常高明.楼主的优化使得读取速度完全胜任实际使用.
我这里用楼主的脚本,加载的速度和显示速度没有楼主快,显示要25秒左右,估计是我的机器垃圾所致,这不重要了.
      然而,在需要用for和read截取字符串的时候,问题就来了.和之前的问题一样,都是龟速.
          测试1:载入2.4-2.7秒;显示却要25秒左右(不用for与read处理字符串)
          测试1:载入3836秒;显示要25秒左右(用for与read处理字符串)
      但现在知道不是命令器的问题,之前以为是变量和控件的问题,原来是我理解错了,再次向楼主道歉.并非常感谢楼主,从楼主的脚本中,我先从其它思路来试试看,能否加快处理的速度.有问题再向楼主请教.再次谢谢楼主.
回复

使用道具 举报

9053#
 楼主| 发表于 2015-2-7 21:05:05 | 只看该作者
2012yws@ 发表于 2015-2-7 20:55
确实如楼主一样,而且楼主的代码写的实在很优美,也极其高效.其实我是半点吐槽的意思也没有的,我确实对命 ...

这么到的数据量, 不要 用FORX 或 READ 分行处理。
那样效率降低了。 需要拆包,合包。

只能一次READ 或EXEC*, 然后 一次显示出来。





需要先设计好。
很多 一般的算法, 对大数据量 都不适合。  大数据量 有专门的研究和算法。
回复

使用道具 举报

9054#
 楼主| 发表于 2015-2-7 21:09:43 | 只看该作者
本帖最后由 mdyblog 于 2015-2-7 21:15 编辑
ling3882688 发表于 2015-2-7 20:18
应该是这样,M大能大体给解释下吗?0x1C2#1,我不确定0#几是AF,所以想通过遍历下所有分区,然后找到这 ...


1:
0x1C2 处是第一分区的类型,  类推。


2:
0x1C6  处4字节是第一分区位置,  0x1CA  处4字节是第一分区长度, 单位均是扇区(s),    ,  类推。
根据 分区位置 (如需要 还有 分区长度)   比对 , 就能  确定0#几是AF 。

GETF# \\.\PhysicalDrive1,0x1F6#8,&&sn1
SET?long    &sn1=&s1:0
SET?long    &sn1=&n1:4
MESS. 起始=%s1%s  长度=%n1%s

//起始=0xC8A0267s  长度=0x174D8B1s

点评

谢谢M大。  详情 回复 发表于 2015-2-7 21:16
回复

使用道具 举报

9055#
发表于 2015-2-7 21:16:54 | 只看该作者
mdyblog 发表于 2015-2-7 21:09
1:
0x1C2 处是第一分区的类型,  类推。

谢谢M大。
回复

使用道具 举报

9056#
 楼主| 发表于 2015-2-8 08:50:06 | 只看该作者
最新 (-49/50) 支持超大文MESS,很快。

ENVI^ EnviMode=1
ENVI^ ForceLocal=1
SIZE sz=D:\dir.txt

READ D:\dir.txt,**,&&V
MESS. %&V%@共%sz%字符

87万字符的文本,可以瞬间了:

回复

使用道具 举报

9057#
发表于 2015-2-8 14:38:40 | 只看该作者
本帖最后由 2012yws@ 于 2015-2-8 14:41 编辑
mdyblog 发表于 2015-2-7 21:05
这么到的数据量, 不要 用FORX 或 READ 分行处理。
那样效率降低了。 需要拆包,合包。


//好的,谢谢楼主.另外关于编辑器IDE的一些建议,楼主看看是否能够实现.
//大纲,会很方便定位到函数段
//实时代码命令与帮助交互(就是将命令器的帮助模式搬到IDE中,并允许自己编辑代码和帮助)
//增加输出功能,更方便排错
//增加代码片段编辑和插入功能(把快速插入放在IDE界面中),IDE设计就真的完美了.
//增加设计备注编辑功能,直接在该窗口查询记录任何的想法和进度,我的构想是内容可直接保存在设计稿中的一个特定段落,命令不去读即可,或者是本目录下的一个特定文件.这个功能将是其它任何IDE都没有提供的特殊功能.将非常有助于设计代码方案.
//其它如代码提示,主题等功能,可以在以后慢慢有需要才添加,大致如下面的图:

点评

1: 帮助, 在需要的 帮助的词上 即可。 2:快速插入, 菜单中就有。 帮助文本, 快速插入文本都是可以 自己修改的, 参见包中相关文档。  详情 回复 发表于 2015-2-8 16:31
回复

使用道具 举报

9058#
 楼主| 发表于 2015-2-8 16:31:27 | 只看该作者
2012yws@ 发表于 2015-2-8 14:38
//好的,谢谢楼主.另外关于编辑器IDE的一些建议,楼主看看是否能够实现.
//大纲,会很方便定位到函数段
...

1: 帮助, 在需要的 帮助的词上 <F1>即可。

2:快速插入, 菜单中就有。

帮助文本, 快速插入文本都是可以 自己修改的, 参见包中相关文档。
回复

使用道具 举报

9059#
发表于 2015-2-9 08:06:16 | 只看该作者
本帖最后由 chiannet 于 2015-2-9 08:08 编辑

第一步用UltraISO高端隐藏V2 U+方式写入一ISO镜像到U盘,用傲梅分区助手查看磁盘分区如下



第二步,用fbinst写入一个fba到此U盘,用傲梅分区助手查看磁盘分区如下,前面做的U+区不见了,但实质上U+区数据是存在的。
  1. fbinst.exe (hd1) format --extended 50m --force --fat32 --primary 8m --archive xxx.fba
复制代码






请问如何用PECMD修复第一步写入的U+区,得到下图式样的结果?


以下是用BOOTICE备份的各阶段MBR,供老大审定。
各阶段MBR.7z (23.37 KB, 下载次数: 0)

点评

fbinstUp.WCS: ---------------------------- 1)用UltraISO高端隐藏V2 U+方式写入一ISO镜像到U盘 2)PECMD LOAD FbInstUp.WCS 1 format --extended 50m --force --fat32 --primary 8m --archive xxx.fba  详情 回复 发表于 2015-2-9 10:28
88.05.50 支持 UDM高端隐藏和全高端隐藏。  详情 回复 发表于 2015-2-9 10:19
回复

使用道具 举报

9060#
 楼主| 发表于 2015-2-9 10:19:10 | 只看该作者
chiannet 发表于 2015-2-9 08:06
第一步用UltraISO高端隐藏V2 U+方式写入一ISO镜像到U盘,用傲梅分区助手查看磁盘分区如下

88.05.50  支持 UDM高端隐藏和全高端隐藏。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-27 09:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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