找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 8133|回复: 14

[求助] 请教:如何在一个程序执行结束后再执行另一个程序?(已解决)

[复制链接]
发表于 2022-7-12 14:33:43 | 显示全部楼层 |阅读模式
本帖最后由 minchengan 于 2022-7-13 10:34 编辑

最近在PE中使用TrafficMonitor,在任务栏显示网络流量和CPU及内存等的占用,同时也用了DrvIndex.exe搜索并安装驱动,现在需要在DrvIndex.exe结束运行后才执行TrafficMonitor,这两条命令分别是:
FORX !\PETOOLS\Drivers\DrvIndex.exe,&dev,1,EXEC -wd:* %&dev% -h
EXEC !%ProgramFiles%\TrafficMonitor\TrafficMonitor.exe
如何让前一条命令执行完成再执行另一条命令而不影响其他别的后续命令的执行?因DrvIndex.exe执行太久了。对pecmd的命令不太熟,
还是用TEAM wait 30000|EXEC !%ProgramFiles%\TrafficMonitor\TrafficMonitor.exe解决,虽然不完美,但也还可以。

已用M大的代码完美解决。



发表于 2022-7-12 14:47:07 | 显示全部楼层
EXEC -wait

点评

感谢红毛大佬的回复。用EXEC -wait执行DrvIndex吗?这个程序搜索并安装驱动的过程会很久,会不会阻塞其他程序的运行,如果不会阻塞的话,那应该也阻塞不了TrafficMontor的运行了,还是达不到目的。这个我试一试先  详情 回复 发表于 2022-7-12 15:03
回复

使用道具 举报

 楼主| 发表于 2022-7-12 15:03:27 | 显示全部楼层

感谢红毛大佬的回复。用EXEC -wait执行DrvIndex吗?这个程序搜索并安装驱动的过程会很久,会不会阻塞其他程序的运行,如果不会阻塞的话,那应该也阻塞不了TrafficMontor的运行了,还是达不到目的。这个我试一试先
回复

使用道具 举报

 楼主| 发表于 2022-7-12 15:24:37 | 显示全部楼层
两种方法需要研究一下:
一是,EXEC -cmd:[:ms:]CMD
二是,不知有没有在一个程序执行完成或一条PECMD命令执行结束返回参数给一个变量,通过读这个变量来判断是否执行另一个程序

点评

用--pid返回一个进程pid,通过pid判断呢?  详情 回复 发表于 2022-7-12 21:06
回复

使用道具 举报

发表于 2022-7-12 21:06:09 来自手机 | 显示全部楼层
minchengan 发表于 2022-7-12 15:24
两种方法需要研究一下:
一是,EXEC -cmd:[:ms:]CMD
二是,不知有没有在一个程序执行完成或一条PECMD命令 ...

用--pid返回一个进程pid,通过pid判断呢?

点评

我在较后面用TEAM wait 15000|EXEC ......,这样不会太影响重要程序的运行,凑合可用  详情 回复 发表于 2022-7-12 21:36
回复

使用道具 举报

发表于 2022-7-12 21:10:57 | 显示全部楼层
我不知道楼主是会编程故意搞复杂,还是不会编程,这么简单的语法很容易就能写出来


FORX !\PETOOLS\Drivers\DrvIndex.exe,&dev,1,EXEC =%&dev% -h
EXEC !%ProgramFiles%\TrafficMonitor\TrafficMonitor.exe

直接等待执行完成进行下一命令就行了,你还搞什么wait命令等待,建议多看看pecmd帮助
QQ截图20220712210951.png

点评

此方法不妥  详情 回复 发表于 2022-7-12 21:35
回复

使用道具 举报

 楼主| 发表于 2022-7-12 21:35:14 | 显示全部楼层
本帖最后由 minchengan 于 2022-7-12 21:37 编辑
826773297 发表于 2022-7-12 21:10
我不知道楼主是会编程故意搞复杂,还是不会编程,这么简单的语法很容易就能写出来

此方法不妥,如果驱动包太大太多,会阻塞很久,PE启动会很慢

点评

想法冲突,对程序来说就是错的。  详情 回复 发表于 2022-7-12 22:54
处理时间较长的命令都是放在进入桌面后。调用时机要把握好  详情 回复 发表于 2022-7-12 21:41
回复

使用道具 举报

 楼主| 发表于 2022-7-12 21:36:56 | 显示全部楼层
红毛樱木 发表于 2022-7-12 21:06
用--pid返回一个进程pid,通过pid判断呢?

我在较后面用TEAM wait 15000|EXEC ......,这样不会太影响重要程序的运行,凑合可用
回复

使用道具 举报

发表于 2022-7-12 21:41:58 来自手机 | 显示全部楼层
minchengan 发表于 2022-7-12 21:35
此方法不妥,如果驱动包太大太多,会阻塞很久,PE启动会很慢

处理时间较长的命令都是放在进入桌面后。调用时机要把握好
回复

使用道具 举报

发表于 2022-7-12 22:54:35 | 显示全部楼层
minchengan 发表于 2022-7-12 21:35
此方法不妥,如果驱动包太大太多,会阻塞很久,PE启动会很慢

想法冲突,对程序来说就是错的。

点评

说中要害。  详情 回复 发表于 2022-7-13 00:02
回复

使用道具 举报

发表于 2022-7-13 00:02:52 | 显示全部楼层
红毛樱木 发表于 2022-7-12 22:54
想法冲突,对程序来说就是错的。

说中要害。
回复

使用道具 举报

发表于 2022-7-13 07:56:47 | 显示全部楼层
试试:

ENVI^ EnviMode=1
EXEC "%&MyName%" TEAM FORX !\PETOOLS\Drivers\DrvIndex.exe,&dev,1,EXEC -wait -wd:* %%&dev%% -h| EXEC !"%%ProgramFiles%%\TrafficMonitor\TrafficMonitor.exe"
///后续命令....

点评

感谢回复。这个写法真正达到了目的。只有流量监控程序在等待驱动安装程序的完成,而后续命令都没有被阻塞。这才是我要的结果。非常感谢。你太厉害了  详情 回复 发表于 2022-7-13 09:46
回复

使用道具 举报

 楼主| 发表于 2022-7-13 09:46:50 | 显示全部楼层
mdyblog 发表于 2022-7-13 07:56
试试:

ENVI^ EnviMode=1

感谢回复。这个写法真正达到了目的。只有流量监控程序在等待驱动安装程序的完成,而后续命令都没有被阻塞。这才是我要的结果。非常感谢。你太厉害了

点评

那好。  详情 回复 发表于 2022-7-13 10:07
回复

使用道具 举报

发表于 2022-7-13 10:07:25 | 显示全部楼层
minchengan 发表于 2022-7-13 09:46
感谢回复。这个写法真正达到了目的。只有流量监控程序在等待驱动安装程序的完成,而后续命令都没有被阻塞 ...

那好。
回复

使用道具 举报

发表于 2023-11-9 13:59:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-4 01:56

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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