|
|
本帖最后由 mdyblog 于 2019-12-1 08:22 编辑
PE 测试了。
可能是 PE精简 引出的问题。可能 系统启动进程PECMD 启动执行时 系统还没整好。(进入桌面后WAIT又好了)
原因:WAIT 等待 失效。
总是瞬间返回。和THREAD 无关。
这样 EXEC = 的等待 就是瞬间返回。
THREAD TEAM FORX \Program_Files.7z,Program,1,EXEC =%SystemRoot%\system32\7-zip\7z.exe x %Program% -o"%ProgramFiles%" -y|LOAD %SystemRoot%\TEST.txt
改为:
THREAD TEAM FORX \Program_Files.7z,Program,1,CALL WaitExec %SystemRoot%\system32\7-zip\7z.exe x %Program% -o"%ProgramFiles%" -y|LOAD %SystemRoot%\TEST.txt
_SUB WaitExec
^EXEC --pid:&&vpid %*
LOOP #%&vpid%<>0, TEAM WAIT 100| WAIT *%&vpid%| FIND --pid*%vpid% &vpid,
_END
---------------------------------------------------
脚本WaitExec 函数, 循环检测 进程 是否真的完毕了。
效果:
-------------------
另外, 可改为下面,以启动桌面
THREAD TEAM FORX \Program_Files.7z,Program,1,CALL WaitExec %SystemRoot%\system32\7-zip\7z.exe x %Program% -o"%ProgramFiles%" -y|THREAD LOAD %SystemRoot%\TEST.txt| EXEC --hook Explorer
|
|