无忧启动论坛

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

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

    [复制链接]
15571#
发表于 2021-1-23 11:59:50 | 只看该作者
本帖最后由 527104427 于 2021-1-23 12:04 编辑
mdyblog 发表于 2021-1-23 07:33
关键是 part list drv

关键是虚拟设备 不知道 特征信息

发现新版的 PART list dep 突然又不行了。
PART list dep 4,&A
MESS. [%&A%]

设备4为挂载的VHD磁盘,上面的命令已经找不到源文件了。


另外,能否直接用盘符呢,像这样:
PART list dep F:,&A
====================================================

原来是64位系统中运行32位PECMD不行了,64位系统运行64位PECMD返回是这样的:\\?\Volume{cba9a44b-7f04-11e9-9758-806e6f6e6963}\aa     b    c空.VHD
旧版PECMD,返回   D:\aa     b    c空.VHD,能改回原来的样子不

















点评

WIn7下, 用同位数的 PECMD。 可能 Win7 SysWow64不完善。 LISP Volume 试试这个:  详情 回复 发表于 2021-1-23 13:15
回复

使用道具 举报

15572#
 楼主| 发表于 2021-1-23 13:15:59 | 只看该作者
本帖最后由 mdyblog 于 2021-1-23 16:45 编辑
527104427 发表于 2021-1-23 11:59
发现新版的 PART list dep 突然又不行了。
PART list dep 4,&A
MESS. [%&A%]

WIn7下, 用同位数的 PECMD。 可能 Win7 SysWow64不完善。


LISP Volume   试试最新版: (网盘)

PART -drv  list volume  \Device\ImDisk1,&V
MESS. %&V%


点评

经测试,PART -drv list volume \Device\Ramdisk{d9b257fc-684e-4dcb-ab79-03cfa2f6b750},&V 确实可以了。 安装了 64 位 win10-20h2 和 64 位 win10-2016_ltsb 测试了一下,32位PECMD运行 PART list dep F:,&A  详情 回复 发表于 2021-1-23 22:25
回复

使用道具 举报

15573#
发表于 2021-1-23 22:25:54 | 只看该作者
mdyblog 发表于 2021-1-23 13:15
WIn7下, 用同位数的 PECMD。 可能 Win7 SysWow64不完善。

经测试,PART -drv  list volume  \Device\Ramdisk{d9b257fc-684e-4dcb-ab79-03cfa2f6b750},&V
确实可以了。

安装了 64 位 win10-20h2 和 64 位 win10-2016_ltsb 测试了一下,32位PECMD运行 PART list dep F:,&A 的确是正常的,看来是win7的锅,不知道需要哪些DLL呢,我从win10复制过来 可行不?


点评

VirtDisk.DLL  详情 回复 发表于 2021-1-24 00:02
回复

使用道具 举报

15574#
 楼主| 发表于 2021-1-24 00:02:21 | 只看该作者
527104427 发表于 2021-1-23 22:25
经测试,PART -drv  list volume  \Device\Ramdisk{d9b257fc-684e-4dcb-ab79-03cfa2f6b750},&V
确实可以 ...

VirtDisk.DLL

点评

老大看看可否这样呢: -timeout:[#]毫秒数[:错误码] 等待超时 #则不杀进程 +则杀子进程  详情 回复 发表于 2021-1-24 19:24
EXEC -timeout 可以加个参数杀子进程不,类似于 KILL -tree 比如下面这个报错 [attachimg]473828[/attachimg] 就是由于PECMD崩溃,再由子进程弄出来的弹窗,用FIND查找该弹窗的结果就是: 7704 2964 12  详情 回复 发表于 2021-1-24 12:41
好的,多谢  详情 回复 发表于 2021-1-24 08:58
回复

使用道具 举报

15575#
发表于 2021-1-24 08:58:42 | 只看该作者

好的,多谢
回复

使用道具 举报

15576#
发表于 2021-1-24 12:41:19 | 只看该作者

EXEC   -timeout  可以加个参数杀子进程不,类似于   KILL -tree
比如下面这个报错


就是由于PECMD崩溃,再由子进程弄出来的弹窗,用FIND查找该弹窗的结果就是:

7704        2964        12144        10140065        132559366249328612        C:\Windows\SysWOW64\WerFault.exe        C:\Windows\SysWOW64\WerFault.exe -u -p 3820 -s 344

点评

出错 提示进程 可出错进程 没有父子关系。 提示 是系统代理的。进程父子关系如图: [attachimg]473931[/attachimg]  详情 回复 发表于 2021-1-24 21:45
※-timeout:[#]毫秒数[:错误码] 等待超时 #则不杀进程; 这个是不是就是自带默认杀进程? 或者利用 错误码判断一下是否需要啥子进程。  详情 回复 发表于 2021-1-24 17:57
回复

使用道具 举报

15577#
发表于 2021-1-24 17:57:32 | 只看该作者
本帖最后由 红毛樱木 于 2021-1-24 19:21 编辑
527104427 发表于 2021-1-24 12:41
EXEC   -timeout  可以加个参数杀子进程不,类似于   KILL -tree
比如下面这个报错


搞错了

点评

子进程  详情 回复 发表于 2021-1-24 18:25
回复

使用道具 举报

15578#
发表于 2021-1-24 19:24:58 | 只看该作者
本帖最后由 527104427 于 2021-1-24 19:34 编辑

老大看看可否这样呢:
-timeout:[+|#]毫秒数[:错误码] 等待超时 #则不杀进程  +则杀子进程

点评

EXEC -timeout:3000 PECMD MESS AAAA杀 EXEC -timeout:#3000 PECMD MESS BBBB不杀 MESS END  详情 回复 发表于 2021-1-24 19:59
回复

使用道具 举报

15579#
 楼主| 发表于 2021-1-24 19:59:54 | 只看该作者
527104427 发表于 2021-1-24 19:24
老大看看可否这样呢:
-timeout:[+|#]毫秒数[:错误码] 等待超时 #则不杀进程  +则杀子进程

EXEC  -timeout:3000  PECMD MESS  AAAA杀
EXEC  -timeout:#3000  PECMD MESS  BBBB不杀
MESS END

点评

我再举个例子吧: EXEC -timeout:2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd =pecmd mess-x:100-y:200 ok2 这时只会杀一个子进程,而不会杀另一个子进程,当子进程有n个的时候,或者子  详情 回复 发表于 2021-1-24 21:44
回复

使用道具 举报

15580#
发表于 2021-1-24 21:44:15 | 只看该作者
mdyblog 发表于 2021-1-24 19:59
EXEC  -timeout:3000  PECMD MESS  AAAA杀
EXEC  -timeout:#3000  PECMD MESS  BBBB不杀
MESS END

我再举个例子吧:
EXEC -timeout:2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd =pecmd mess-x:100-y:200 ok2

这时只会杀一个子进程,而不会杀另一个子进程,当子进程有n个的时候,或者子进程又衍生出孙进程的时候,就杀不掉了。

点评

EXEC -timeout:*2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd =pecmd mess-x:100-y:200 ok2  详情 回复 发表于 2021-1-24 23:21
EXEC -timeout:2000 -pid:&pid -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd =pecmd mess-x:100-y:200 ok2 FIND #%&pid%>0,!! KILL -tree *%&pid%  详情 回复 发表于 2021-1-24 21:51
回复

使用道具 举报

15581#
 楼主| 发表于 2021-1-24 21:45:24 | 只看该作者
527104427 发表于 2021-1-24 12:41
EXEC   -timeout  可以加个参数杀子进程不,类似于   KILL -tree
比如下面这个报错

出错 提示进程  可出错进程 没有父子关系。 提示 是系统代理的。进程父子关系如图:

点评

老大看看楼上的解释,不仅仅是出错的弹窗(这个是我搞错了),还有其它的应用。  详情 回复 发表于 2021-1-24 21:48
回复

使用道具 举报

15582#
发表于 2021-1-24 21:48:44 | 只看该作者
mdyblog 发表于 2021-1-24 21:45
出错 提示进程  可出错进程 没有父子关系。 提示 是系统代理的。进程父子关系如图:

老大看看楼上的解释,不仅仅是出错的弹窗(这个是我搞错了),还有其它的应用。
回复

使用道具 举报

15583#
 楼主| 发表于 2021-1-24 21:51:08 | 只看该作者
527104427 发表于 2021-1-24 21:44
我再举个例子吧:
EXEC -timeout:2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd = ...

EXEC -timeout:2000 -pid:&pid -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd =pecmd mess-x:100-y:200 ok2

FIND #%&pid%>0,!! KILL -tree *%&pid%

回复

使用道具 举报

15584#
 楼主| 发表于 2021-1-24 23:21:25 | 只看该作者
本帖最后由 mdyblog 于 2021-1-25 05:47 编辑
527104427 发表于 2021-1-24 21:44
我再举个例子吧:
EXEC -timeout:2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd = ...

EXEC -timeout:*2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd =pecmd mess-x:100-y:200 ok2

另外 对普通应用 (没去权限要求的)
-job   更好更彻底(一切子孙, 无论多么隐藏)

EXEC -job -timeout:2000 -pid:&pid  =pecmd TEAM thread mess-x:100-y:100 ok1| EXEC CALC|  exec  =pecmd mess-x:100-y:200 ok2


点评

试了一下,这个成功: EXEC -timeout:*2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd =pecmd mess-x:100-y:200 ok2 这个运行啥反应也没(没有出现MESS和计算器): EXEC -job -timeout:20  详情 回复 发表于 2021-1-25 00:07
回复

使用道具 举报

15585#
发表于 2021-1-25 00:07:30 | 只看该作者
mdyblog 发表于 2021-1-24 23:21
EXEC -timeout:*2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd =pecmd mess-x:100- ...

试了一下,这个成功:
EXEC -timeout:*2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -incmd =pecmd mess-x:100-y:200 ok2

这个运行啥反应也没(没有出现MESS和计算器):
EXEC -job -timeout:2000 -pid:&pid  =pecmd--- TEAM thread mess-x:100-y:100 ok1| EXEC CALC|  exec  =pecmd--- mess-x:100-y:200 ok2


加上-incmd,64位的PECMD正常,32位也只能关掉第1个MESS窗口,其它两个关不掉:
EXEC -job -timeout:2000 -pid:&pid  -incmd =pecmd--- TEAM thread mess-x:100-y:100 ok1| EXEC CALC|  exec  -incmd  =pecmd--- mess-x:100-y:200 ok2



点评

WIn7-WOW 新版 已解决。  详情 回复 发表于 2021-1-25 07:07
回复

使用道具 举报

15586#
 楼主| 发表于 2021-1-25 07:07:14 | 只看该作者
527104427 发表于 2021-1-25 00:07
试了一下,这个成功:
EXEC -timeout:*2000 -incmd =pecmd TEAM thread mess-x:100-y:100 ok1| exec -in ...

WIn7-WOW  新版 已解决。

点评

不知道WIN7支持这个功能不: MOUN-vhd -query "D:\aa b c空 - 副本.VHD",&&A,&&B MESS. [%&A%][%&B%] 试了一下,貌似不可以 [attachimg]474032[/attachimg]  详情 回复 发表于 2021-1-26 19:26
测试已OK  详情 回复 发表于 2021-1-25 11:39
回复

使用道具 举报

15587#
发表于 2021-1-25 11:39:36 | 只看该作者
mdyblog 发表于 2021-1-25 07:07
WIn7-WOW  新版 已解决。

测试已OK

点评

5大又回归了啊! 请教一下,怎么判断某目录不存在? 比如c:\abc不存在则建立这个目录。 FORX能实现吗?  详情 回复 发表于 2021-1-26 10:41
回复

使用道具 举报

15588#
发表于 2021-1-26 10:41:29 | 只看该作者

5大又回归了啊!
请教一下,怎么判断某目录不存在?
比如c:\abc不存在则建立这个目录。
FORX能实现吗?


点评

嗯,找到命令了,原来是IFEX IFEX %desktop%\abc\,!MDIR %desktop%\abc  详情 回复 发表于 2021-1-26 11:56
试试: IFEX C:\abc,! MDIR C:\abc  详情 回复 发表于 2021-1-26 11:56
回复

使用道具 举报

15589#
发表于 2021-1-26 10:43:04 | 只看该作者
@mdyblog
M大也看一下楼上的问题。谢谢
回复

使用道具 举报

15590#
发表于 2021-1-26 11:56:26 | 只看该作者
lafter 发表于 2021-1-26 10:41
5大又回归了啊!
请教一下,怎么判断某目录不存在?
比如c:\abc不存在则建立这个目录。

试试:

IFEX C:\abc\,! MDIR C:\abc

点评

感谢! 没注意到5大回帖了。指定盘符可以使用。 但是有人为安装office之类软件,把%TEMP%改到了x:%user\default\appdata\local\temp,好像是这个地方吧。 尝试 IFEX %TEMP%\,! MDIR %TEMP%就无效,实际上变量已经  详情 回复 发表于 2021-1-26 16:15
回复

使用道具 举报

15591#
发表于 2021-1-26 11:56:45 | 只看该作者
本帖最后由 lafter 于 2021-1-26 12:28 编辑
lafter 发表于 2021-1-26 10:41
5大又回归了啊!
请教一下,怎么判断某目录不存在?
比如c:\abc不存在则建立这个目录。

嗯,找到命令了,原来是IFEX
IFEX %desktop%\abc\,!MDIR %desktop%\abc
有的时候上面这句不行。最后发现这是脱裤子放屁,多此一举,直接建目录就行了。存在的话不会再建立并且不提示。
回复

使用道具 举报

15592#
发表于 2021-1-26 16:15:15 | 只看该作者
527104427 发表于 2021-1-26 11:56
试试:

IFEX C:\abc\,! MDIR C:\abc

感谢!
没注意到5大回帖了。指定盘符可以使用。
但是有人为安装office之类软件,把%TEMP%改到了x:\user\default\appdata\local\temp,好像是这个地方吧。
尝试 IFEX %TEMP%\,! MDIR %TEMP%就无效,实际上变量已经生效存在的,但目录没有建立。
直接MDIR %TEMP%倒是成功了。
我用IFEX的命令哪儿不对吗?

点评

对,就你红毛说的调试一下: IFEX %TEMP%\, mess. %TEMP%! MDIR %TEMP%  详情 回复 发表于 2021-1-26 19:27
回复

使用道具 举报

15593#
发表于 2021-1-26 18:39:35 来自手机 | 只看该作者
mess弹窗一下看看变量是不是真生效
回复

使用道具 举报

15594#
发表于 2021-1-26 19:26:59 | 只看该作者
mdyblog 发表于 2021-1-25 07:07
WIn7-WOW  新版 已解决。

不知道WIN7支持这个功能不:
MOUN-vhd  -query  "D:\aa     b    c空 - 副本.VHD",&&A,&&B
MESS. [%&A%][%&B%]


试了一下,貌似不可以


点评

前8 字节的前 4字节是命令, 先填好, 指示返回什么信息, 8B开始是信息。 //由于对齐, 中间4字节(4-7)没有用 参见 https://docs.microsoft.com/zh-cn/windows/win32/api/virtdisk/ns-virtdisk-get_virtual_dis  详情 回复 发表于 2021-1-26 21:27
回复

使用道具 举报

15595#
发表于 2021-1-26 19:27:53 | 只看该作者
lafter 发表于 2021-1-26 16:15
感谢!
没注意到5大回帖了。指定盘符可以使用。
但是有人为安装office之类软件,把%TEMP%改到了x:%user ...

对,就像红毛说的调试一下:
IFEX %TEMP%\, mess. %TEMP%! MDIR %TEMP%

点评

可以的,再次测试没有问题。 不加弹窗,IFEX %TEMP%\, ! MDIR %TEMP%就可以,原先不行是手误打错命令,把MDIR搞成MDRI了。。。汗😓 感谢5大、红毛老大两位回复解答问题。  详情 回复 发表于 2021-1-27 10:44
回复

使用道具 举报

15596#
发表于 2021-1-26 19:37:02 | 只看该作者
谢谢分享
回复

使用道具 举报

15597#
 楼主| 发表于 2021-1-26 21:27:25 | 只看该作者
本帖最后由 mdyblog 于 2021-1-26 23:49 编辑
527104427 发表于 2021-1-26 19:26
不知道WIN7支持这个功能不:
MOUN-vhd  -query  "D:\aa     b    c空 - 副本.VHD",&&A,&&B
MESS. [%&A% ...

前8 字节的前 4字节是命令, 先填好, 指示返回什么信息, 8B开始是信息。
//由于对齐, 中间4字节(4-7)没有用
参见 https://docs.microsoft.com/zh-cn/windows/win32/api/virtdisk/ns-virtdisk-get_virtual_disk_info?redirectedfrom=MSDN
新版 命令 可以参数 传入
VHD_Query.wcs
{  //VHD长度
SET#%  &V=*8192
//SET-int64 V=1:0
SET-int64 V=0:8
MOUN -vhd -query -r  "Q:\VHDTEST\BASE_S1_S1.vhd",&V,&bytes,1
SET?int64 V=&szv:8
SET?int64 V=&szp:16IFEX #%&bytes%>=24,  MESS. bytes[%&bytes%] szv[%&szv%] szp[%&szp%]
EXIT
}



{    //差分VHD 的 父亲
SET#%  &V=*8192
//SET-int64 V=3:0
SET-int64 V=0:8
MOUN -vhd -query -r  Q:\VHDTEST\BASE_S1_S1.vhd,&V,&bytes,3
SET?long V=&&ParentResolved:8
ENVI-mkfixdummy   &&nm=&V@12;~
IFEX #%&bytes%>=16,  MESS. [%bytes%] [%ParentResolved%] [%&nm%]
EXIT
}


{ // 类型
SET#%  &V=*8192
//SET-int64 V=6:0  //GET_VIRTUAL_DISK_INFO_VIRTUAL_STORAGE_TYPE
SET-int64 V=0:8
MOUN -vhd -query -r  Q:\VHDTEST\BASE_S1_S1.vhd,&V,&&bytes,6
ENVI?long &V=&&tp:8   //2=VIRTUAL_STORAGE_TYPE_DEVICE_VHD  3=VIRTUAL_STORAGE_TYPE_DEVICE_VHDX
IFEX #%&bytes%>=12, MESS. bytes[%&bytes%] type[%&tp%]
}


{ //子类型
SET#%  &V=*8192
//SET-int64 V=7:0  //GET_VIRTUAL_DISK_INFO_PROVIDER_SUBTYPE
SET-int64 V=0:8
MOUN -vhd -query -r Q:\VHDTEST\BASE_S1_S1.vhd,&V,&bytes,7
ENVI?long &V=&&subtp:8   //2=Fixed.  3=Dynamically  4=Differencing
IFEX #%&bytes%>=12, MESS. bytes[%&bytes%] subtype[%&subtp%]
}










点评

这里是不是有个换行符丢了? [attachimg]474053[/attachimg]  详情 回复 发表于 2021-1-27 12:16
这么复杂!  详情 回复 发表于 2021-1-27 09:11
回复

使用道具 举报

15598#
发表于 2021-1-27 09:11:10 | 只看该作者
mdyblog 发表于 2021-1-26 21:27
前8 字节的前 4字节是命令, 先填好, 指示返回什么信息, 8B开始是信息。
//由于对齐, 中间4字节(4-7 ...

这么复杂!
回复

使用道具 举报

15599#
发表于 2021-1-27 10:44:39 | 只看该作者
527104427 发表于 2021-1-26 19:27
对,就像红毛说的调试一下:
IFEX %TEMP%\, mess. %TEMP%! MDIR %TEMP%

可以的,再次测试没有问题。
不加弹窗,IFEX %TEMP%\, ! MDIR %TEMP%就可以,原先不行是手误打错命令,把MDIR搞成MDRI了。。。汗😓
感谢5大、红毛老大两位回复解答问题。
回复

使用道具 举报

15600#
发表于 2021-1-27 12:16:05 | 只看该作者
mdyblog 发表于 2021-1-26 21:27
前8 字节的前 4字节是命令, 先填好, 指示返回什么信息, 8B开始是信息。
//由于对齐, 中间4字节(4-7 ...

这里是不是有个换行符丢了?





点评

对  详情 回复 发表于 2021-1-27 13:27
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-21 15:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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