无忧启动论坛

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

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

    [复制链接]
9931#
发表于 2015-6-27 19:46:27 | 只看该作者
mdyblog 发表于 2015-6-26 19:35
//MyFUN %c%   %h% &&r &&z &&a &&l
_SUB MyFUN
SET &c=%~1

不懂呀!能说的更明白点吗!
回复

使用道具 举报

9932#
 楼主| 发表于 2015-6-28 08:07:47 | 只看该作者
本帖最后由 mdyblog 于 2015-6-28 15:00 编辑


精准启动:直接找到启动磁盘。 哪怕两个磁盘(U盘和本地磁盘)或两个分区上的PE一样,也会找到自启动PE对应的磁盘和分区
PECMD2012.1.88.05.67


1)精准制导启动(PECDM.INI)
MOUN -udm -findboot [-ret: 返名] -muh -u+ -udfs -mall -mhide  -udimg: *.img -udimg: *.iso   \\.\PhysicalDrive* C-
注意 -findboot 优先, 有效的话, -mall -mhide -udimg: -muh -u+ 等 自动忽略

返名 中有加载的盘符列表


2)设置精准启动(格式化最后一步)
moun -udm setboot [-ret: 返名] [-udmid: udm号 ] BCD/BOOT.INI启动菜单 [<UDM盘符] [类型]
moun -udm setboot [-ret: 返名] [-udmid: udm号 ] BCD/BOOT.INI启动菜单 [磁盘号>[#udm号]] [类型]
moun -udm setboot [-ret: 返名] BCD/BOOT.INI启动菜单 [磁盘号>#文件名] ud
moun -udm setboot [-ret: 返名] BCD/BOOT.INI启动菜单 [磁盘号>#] u+
//类型: "" udm  pt ud u+ cd

对于普通分区和UDM软加载的分区(G:)上的BCD/BOOT.INI启动菜单可以
moun -udm setboot  G:\BOOT\BCD

对于UD磁盘1的EFI.IMG
moun -udm setboot G:\BOOT\BCD 1#EFI.IMG  ud

对于U+磁盘1
moun -udm setboot G:\BOOT\BCD 1  u+

对于光盘,标志文件WINPE\WINPE.INI或卷标H3CDALL
moun -udm setboot G:\BOOT\BCD devfile#WINPE\WINPE.INI  cd    或:
moun -udm setboot G:\BOOT\BCD #WINPE\WINPE.INI  cd.file  //不混淆的话#可省
moun -udm setboot G:\BOOT\BCD devvol#H3CDALL   cd    或:
moun -udm setboot G:\BOOT\BCD #H3CDALL   cd.vol  //不混淆的话#可省


3)也可自己读出 启动磁盘信息
MOUN -udm findboot -ret: 返名   //查找启动设备,返回:磁盘号 UDM号 类型 可用于引导的参数
MSTR 磁盘号,UDM号,类型=<1*>%返名%
对UD, UDM号返回文件名
类型为空,则为udm

磁盘号=-1 无效(比如没有设置。比如直接将人家的PE分区拷过来,没有重新设置)
磁盘号>=0 为磁盘
如果是光盘, 磁盘号返回 符合的光盘盘符列表 D:F:
回复

使用道具 举报

9933#
发表于 2015-6-28 17:23:56 | 只看该作者
请问一下高DPI的问题要如何解决??

比如把字体设为125%或150%那默认情况下的控件位置都需要做改动,有没有什么办法自适应?

点评

四不是自己动态计算空间大小。  详情 回复 发表于 2015-6-28 18:06
回复

使用道具 举报

9934#
 楼主| 发表于 2015-6-28 18:06:42 | 只看该作者
chenall 发表于 2015-6-28 17:23
请问一下高DPI的问题要如何解决??

比如把字体设为125%或150%那默认情况下的控件位置都需要做改动,有没有 ...


是不是自己动态计算空间大小。
回复

使用道具 举报

9935#
发表于 2015-6-28 19:28:18 | 只看该作者
527104427 发表于 2015-6-25 20:10
这些没有直接的函数支持,是很难一步到位的,只能一步一步来。

你还是跟M大商量一下吧,让他把这些弄 ...

他和我说
//MyFUN %c%   %h% &&r &&z &&a &&l
_SUB MyFUN
SET &c=%~1
SET &h=%~2
calc &&r=((%&c%/2)^2+%&h%^2)/(2*%&h%)
calc &&z=(%&c%/2)/%&r%
calc &&a=2*deg(arcsin(%&z%))
calc &&l=2*%&r%*pi*%&a%/360
ENVI-ret  %~3=%&r%
ENVI-ret  %~4=%&z%
ENVI-ret  %~5=%&a%
ENVI-ret  %~6=%&l%
_END

调用:
MyFUN %c%   %h% &&r &&z &&a &&l

%&r%  %&z%  %&a%  %&l%  里面的值就是需要的结果。
至于界面 怎么摆,自己看桌办。
我不懂!我问他他也不回复!后来想起来也可以写成
TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
MYWINDOW1
_SUB MYWINDOW1,W960H440,
EDIT Edit1,L32T24W840H36,,,,,24
ITEM ITEM1,L32T68W30H34,=,CALL MyFUN
_END

_SUB MyFUN
LPOS W= ,1,%Edit1%
CALC K=%W%-1
LSTR &c=%K%,%Edit1%
CALC T=%W%+1
MSTR &h=%T%,10,%Edit1%
CALC &&r=((%&c%/2)^2+%&h%^2)/(2*%&h%)
CALC &&z=(%&c%/2)/%&r%
CALC &&a=2*deg(arcsin(%&z%))
CALC &&l=2*%&r%*pi*%&a%/360
ENVI @Edit1=r=%&r% a=%&a% l=%&l%
_END
来完成!这样在编辑框里输入弦长c和高h的值,中间有一个空格就好了!有点麻烦!也有点长!一个数值须要单独一个过程!如果要是加入此函数到CALC命令就简单多了!
你看看还有没有什么好方法!


点评

哦,等我抽空试试。最近忙的很  详情 回复 发表于 2015-6-28 20:02
回复

使用道具 举报

9936#
发表于 2015-6-28 20:02:42 | 只看该作者
ge 发表于 2015-6-28 19:28
他和我说
//MyFUN %c%   %h% &&r &&z &&a &&l
_SUB MyFUN

哦,等我抽空试试。最近忙的很
回复

使用道具 举报

9937#
发表于 2015-6-28 20:10:18 | 只看该作者
527104427 发表于 2015-6-28 20:02
哦,等我抽空试试。最近忙的很

谢谢!

点评

你可以试试这个,仿造了三个函数,可进行复杂运算:  详情 回复 发表于 2015-6-29 21:47
回复

使用道具 举报

9938#
发表于 2015-6-29 08:33:58 | 只看该作者
请教下各位:下面是查询WIM映像信息卷号的部份代码,映像卷在9个以内都能显示出来,如果映像卷大于9个则无法显示,如何修改下面代码让返回值%&ipos%大于9都列出来。

TEAM EXEC* @MEMO=!cmd.exe /c Dism /get-wiminfo /wimFile:"%index%"
RPOS &&iPos=:,4,%MEMO%
calc #pos = %ipos% + 2
LSTR &&ipos= %pos%,%MEMO%
RSTR &&ipos=1,%&ipos%

点评

RSTR &&ipos=1,%&ipos% 改成 RSTR &&ipos=10,%&ipos% SED &ipos=0,[^0-9].*,,%&ipos%  详情 回复 发表于 2015-6-29 14:35
回复

使用道具 举报

9939#
发表于 2015-6-29 08:59:19 | 只看该作者
本帖最后由 singel 于 2015-6-29 09:19 编辑

[CALL $"D:\WIM\YunGuanjia527\YunShellExt.dll",DllUnregisterServer]        <1114>        :动态链接库(DLL)初始化例程失败。
[FILE "D:\Personal\Temp\bdyunguanjiaskinres"]        <1026>        :

M大,上面的错误码1114和1026是什么意思呢?


另:KILL命令怎么杀死相似的进程?如aa1.exe ,aa2.exe ,aa3.exe

点评

HELP\WINDOWS错误码.htm [attachimg]219851[/attachimg] [attachimg]219852[/attachimg] FIND --PID*@ &V,aa // aa*.* 的进程 FORX * NL &&V,&&VL { MSTR &&pid,&&file=%&VL% //此处过滤下  详情 回复 发表于 2015-6-29 14:31
回复

使用道具 举报

9940#
 楼主| 发表于 2015-6-29 14:31:21 | 只看该作者
singel 发表于 2015-6-29 08:59
[CALL $"D:\WIM\YunGuanjia527\YunShellExt.dll",DllUnregisterServer]                :动态链接库(DLL)初始化例程失败。 ...

HELP\WINDOWS错误码.htm





FIND  --PID*@  &V,aa    // aa*.* 的进程
FORX * NL &&V,&&VL
{
  MSTR &&pid,&&file=<1><6>%&VL%
  //此处过滤下
  KILL *%pid%  //杀之
}
回复

使用道具 举报

9941#
 楼主| 发表于 2015-6-29 14:35:41 | 只看该作者
shq000 发表于 2015-6-29 08:33
请教下各位:下面是查询WIM映像信息卷号的部份代码,映像卷在9个以内都能显示出来,如果映像卷大于9个则无 ...

RSTR &&ipos=1,%&ipos%
改成
RSTR &&ipos=10,%&ipos%
SED &ipos=0,[^0-9].*,,%&ipos%
回复

使用道具 举报

9942#
发表于 2015-6-29 15:14:27 | 只看该作者
mdyblog 发表于 2015-6-28 18:06
是不是自己动态计算空间大小。

本来是要考虑动态调整空间大小的,发现太麻烦了。

昨天527104427给了我资料,直接动态调整字体大小这样很简单多了。

点评

这样也好。  详情 回复 发表于 2015-6-29 17:11
回复

使用道具 举报

9943#
发表于 2015-6-29 16:00:08 | 只看该作者
本帖最后由 shq000 于 2015-6-29 16:02 编辑
mdyblog 发表于 2015-6-29 14:35
RSTR &&ipos=1,%&ipos%
改成
RSTR &&ipos=10,%&ipos%


改成
RSTR &&ipos=10,%&ipos%
SED &ipos=0,[^0-9],,%&ipos%
上面1到9个映像卷可以正常显示出来,而且列表里有1-9选项,如果单个的映像文件卷数超过9个如10个或11个列表里只显示1无其他选项。

点评

估计其它的地方,也按照这种思维方法改。 没研究的 整个过程, 自己 举一反三吧。  详情 回复 发表于 2015-6-29 17:10
回复

使用道具 举报

9944#
 楼主| 发表于 2015-6-29 17:10:32 | 只看该作者
shq000 发表于 2015-6-29 16:00
改成
RSTR &&ipos=10,%&ipos%
SED &ipos=0,[^0-9],,%&ipos%

估计其它的地方,也按照这种思维方法改。
没研究的 整个过程, 自己 举一反三吧。
回复

使用道具 举报

9945#
 楼主| 发表于 2015-6-29 17:11:41 | 只看该作者
chenall 发表于 2015-6-29 15:14
本来是要考虑动态调整空间大小的,发现太麻烦了。

昨天527104427给了我资料,直接动态调整字体大小这 ...

这样也好。
回复

使用道具 举报

9946#
发表于 2015-6-29 18:06:22 | 只看该作者
本帖最后由 赤木刚宪 于 2015-6-30 07:19 编辑

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=369561
老大请关注下这个WIN10PE


以U盘为启动盘,无法挂载该U盘自带的隐藏区(比如软堞通的高端隐藏)(此时可以用BOOTPART来挂载)
如果把启动WIM放本地,在硬盘启动可以挂载该U盘隐藏区



最后用BOOTICE比较了一下
U盘启动的时候该U盘变成HD盘,本机硬盘启动的时候该U盘是正常的RM盘

不知道怎么处理了。。。

挂载直接用的moun  u+的代码
回复

使用道具 举报

9947#
发表于 2015-6-29 20:24:14 | 只看该作者
mdyblog 发表于 2015-6-29 14:31
HELP\WINDOWS错误码.htm

多谢M大。

YunShellExt.zip (107.74 KB, 下载次数: 1)

附件里的DLL用CALL命令怎么才可以注册/卸载成功?

用CALL $"%CurDir%\YunShellExt.dll",DllUnregisterServer不行,用EXEC =regsvr32 /s /u "%CurDir%\YunShellExt.dll"可以

点评

exec ="%&MyName%" CALL $"%CurDir%\YunShellExt.dll",DllUnregisterServe 行吗?  详情 回复 发表于 2015-6-29 22:54
回复

使用道具 举报

9948#
发表于 2015-6-29 21:47:14 | 只看该作者

你可以试试这个,仿造了三个函数,可进行复杂运算:

2.png (40 KB, 下载次数: 1022)

2.png

3.png (45.11 KB, 下载次数: 986)

3.png

Calc.7z

7.64 KB, 下载次数: 18

回复

使用道具 举报

9949#
 楼主| 发表于 2015-6-29 22:54:15 | 只看该作者

exec ="%&MyName%"  CALL $"%CurDir%\YunShellExt.dll",DllUnregisterServe
行吗?
回复

使用道具 举报

9950#
发表于 2015-6-30 06:17:40 | 只看该作者
本帖最后由 singel 于 2015-6-30 06:24 编辑
mdyblog 发表于 2015-6-29 22:54
exec ="%&MyName%"  CALL $"%CurDir%\YunShellExt.dll",DllUnregisterServe
行吗?


不行, 一样返回1114错误码。PECMD2012用的是6.28日最新版。

exec =regsvr32 /s /u "%CurDir%\YunShellExt.dll"     --------------------------------------卸载成功

CALL $"%CurDir%\YunShellExt.dll",DllUnregisterServer   ----------------------------------返回1114错误码

exec ="%&MyName%"  CALL $"%CurDir%\YunShellExt.dll",DllUnregisterServer  ----返回1114错误码
回复

使用道具 举报

9951#
发表于 2015-6-30 06:56:31 | 只看该作者
本帖最后由 chiannet 于 2015-6-30 07:39 编辑

DISK ,,,1,T
命令把分区操作数为0xEE  0xEF的分区给分配了盘符,M大能否改进一下,让分区操作数为0xEE  0xEF的分区保持隐藏?



或者功能1保持这样,增加功能4
DISK ,,,4,T
各式隐藏区及0xEE  0xEF分区保持隐藏,其它同功能1。

点评

MBR怎么有 0xEE的分区? 0xEE 不是GPT的容器吗  详情 回复 发表于 2015-6-30 08:47
回复

使用道具 举报

9952#
发表于 2015-6-30 08:04:16 | 只看该作者
mdyblog 发表于 2015-6-29 22:54
exec ="%&MyName%"  CALL $"%CurDir%\YunShellExt.dll",DllUnregisterServe
行吗?

老大看看 #10480 的问题,

U+高端写入,PE启动后以下代码无法挂载高端区:

PART list disk,&&disk
FORX * %&disk%,&&hd,
{
MOUN  -udm  -mall  -mhide1  -u+  -udm-  \\.\PhysicalDrive%&hd%  C-
}

点评

测试,是可以的。 注意要是R格式的盘,才需要-mhide1 F格式直接 SHOW U:-1 就可以了, 不需要高端隐藏。  详情 回复 发表于 2015-6-30 10:06
各位路过的神仙看看,下列代码是否充分必要? // D:全体本地硬盘上的非隐藏分区的总数 ENVI D=0 PART LIST DISK,X FORX * %X%,H, { FORM V,B=\\.\PHYSICALDRIVE%H% FIND $%B%=7,EXIT CONTINUE PART  详情 回复 发表于 2015-6-30 08:31
回复

使用道具 举报

9953#
发表于 2015-6-30 08:31:11 | 只看该作者
本帖最后由 chiannet 于 2015-6-30 08:41 编辑
527104427 发表于 2015-6-30 08:04
老大看看 #10480 的问题,

U+高端写入,PE启动后以下代码无法挂载高端区:



各位路过的神仙看看,下列代码是否充分必要?

// D:全体本地硬盘上的非隐藏分区的总数

ENVI D=0
PART LIST DISK,X
FORX * %X%,H,
{
        FORM V,B=\\.\PHYSICALDRIVE%H%
        FIND $%B%=7,EXIT CONTINUE
        PART LIST PART %H%,P
        FORX * %P%,A,
        {
                FIND #%A%>0,
                {
                        PART -hextp LIST PART %H%#%A%,Q
                        MSTR T=<2>%Q%
                        LPOS I=%T%,1,0x0 0x11 0x12 0x14 0x16 0x17 0x1B 0x1C 0x1E 0x84 0x93
                        FIND #%I%=0,CALC #D=%D%+1
                        // MESS %H%:%A%\n%Q%\n%D%
                }
        }       
}

点评

LPOS I=_%T%_,1,*_0x0_0x11_0x12_0x14_0x16_0x17_0x1B_0x1C_0x1E_0x84_0x93_*  详情 回复 发表于 2015-6-30 10:34
nice 我没有要补充的  详情 回复 发表于 2015-6-30 09:46
回复

使用道具 举报

9954#
发表于 2015-6-30 08:32:28 | 只看该作者
mdyblog 发表于 2015-6-29 22:54
exec ="%&MyName%"  CALL $"%CurDir%\YunShellExt.dll",DllUnregisterServe
行吗?

有新情况,最新版PECMD的SHOW命令失败了:

SHOW  0:6,Y:

点评

改了,测试通过。  详情 回复 发表于 2015-6-30 10:30
回复

使用道具 举报

9955#
 楼主| 发表于 2015-6-30 08:47:46 | 只看该作者
chiannet 发表于 2015-6-30 06:56
DISK ,,,1,T
命令把分区操作数为0xEE  0xEF的分区给分配了盘符,M大能否改进一下,让分区操作数为0xEE  0x ...

MBR怎么有 0xEE的分区?
0xEE 不是GPT的容器吗
回复

使用道具 举报

9956#
发表于 2015-6-30 09:03:18 | 只看该作者
mdyblog 发表于 2015-6-30 08:47
MBR怎么有 0xEE的分区?
0xEE 不是GPT的容器吗

某些MBR方式硬盘,为了支持UEFI启动,所建立的efi分区(0xEF,有时是0#1),在“DISK ,,,1,T”后,就会占据C:

点评

DISK -4 加上了。 另外, 原有功能好, 通过选项0x04也可以过滤0xEE 0xEF的。 ---- 不好测试,没有测试。  详情 回复 发表于 2015-6-30 10:29
回复

使用道具 举报

9957#
发表于 2015-6-30 09:46:23 | 只看该作者
chiannet 发表于 2015-6-30 08:31
各位路过的神仙看看,下列代码是否充分必要?

// D:全体本地硬盘上的非隐藏分区的总数

nice  我没有要补充的
回复

使用道具 举报

9958#
发表于 2015-6-30 09:47:57 | 只看该作者
mdyblog 发表于 2015-6-30 08:47
MBR怎么有 0xEE的分区?
0xEE 不是GPT的容器吗

66版SHOW正常,从67版开始就不正常了。

67第一个版本,X86的PECMD正常,X64不正常

67第二个版本,X86、X64都不正常
回复

使用道具 举报

9959#
 楼主| 发表于 2015-6-30 10:06:24 | 只看该作者
本帖最后由 mdyblog 于 2015-6-30 10:15 编辑
527104427 发表于 2015-6-30 08:04
老大看看 #10480 的问题,

U+高端写入,PE启动后以下代码无法挂载高端区:


测试,是可以的。
注意要是R格式的盘,才需要-mhide1
F格式直接 SHOW U:-1 就可以了, 不需要高端隐藏。




效果图:
回复

使用道具 举报

9960#
发表于 2015-6-30 10:24:13 | 只看该作者
mdyblog 发表于 2015-6-30 10:06
测试,是可以的。
注意要是R格式的盘,才需要-mhide1
F格式直接 SHOW U:-1 就可以了, 不需要高端隐 ...

老大可能误会了。只有他这个WIN10PE才有问题,其它PE都是正常的。或许是PECMD在WIN10里面的挂载有点问题。

点评

WIN10 没有测试环境。  详情 回复 发表于 2015-6-30 10:35
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-28 15:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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