无忧启动论坛

标题: PECMD EXEC如何等待子進程結束? [打印本页]

作者: saiz    时间: 2018-7-17 16:42
标题: PECMD EXEC如何等待子進程結束?
如題
我用PECMD自動執行 自解檔
但部份自解檔會再自動執行批次檔
要如何讓PECMD等批次檔執行完畢才執行下一個自解檔呢?
不然會卡住 檔案更新不全
請高手幫忙解惑一下
十分感謝!!
作者: 527104427    时间: 2018-7-17 16:45
exec =

这命令不行吗?你直接把例子打包成附件传上来吧
作者: 红毛樱木    时间: 2018-7-17 18:20
※-wait或前导"="表示等待执行完成;
  1. EXEC -wait %SystemRoot%\System32\cmd.exe
  2. MESS. cmd执行完了
复制代码

作者: saiz    时间: 2018-7-17 18:51
FORX %CurDir%\20*.exe,BrandUpdate,0,TEAM EXEC -doc:runas =%Brandupdate%|WAIT 6999|KILL ppcpos_agent.exe

我有用=來等待程式完成 但不完全
主要是部份自解檔會執行一個MobilePosInstaller.exe 並會開啟一個常駐ppcpos_agent.exe
agent會鎖部份檔案 造成後續無法更新
EXEC的等待只限於.exe 後續執行的MobilePosinstaller.exe就不理 執行下一個了
可從此下載我的PECMD.INI跟2個自解檔

下載
作者: 527104427    时间: 2018-7-17 19:14
saiz 发表于 2018-7-17 18:51
我有用=來等待程式完成 但不完全
主要是部份自解檔會執行一個MobilePosInstaller.exe 並會開啟一個常駐p ...


要翻墙,下载不到。试试吧:

  1. FORX %CurDir%\20*.exe,BrandUpdate,0, TEAM EXEC  -doc:runas  -pid:&pidc =%Brandupdate%| CALL forcewait| KILL ppcpos_agent.exe

  2. _SUB forcewait
  3.         ENVI &childPID=
  4.         FIND --pid*@.#%&pidc% &childPID,
  5.         LOOP $%&childPID%<>,
  6.         {*
  7.                 FORX *NL &childPID,&OnePid,
  8.                 {
  9.                         FIND $%&OnePid%<>,
  10.                         {
  11.                                 MSTR* * &pids,&tidFILE=<1><6>&OnePid
  12.                                 FIND $%&tidFILE%<>%SYSTEMDRIVE%\Windows\Explorer.EXE, WAIT *%&pids%
  13.                         }
  14.                 }
  15.                 ENVI &childPID=
  16.                 FIND --pid*@.#%&pidc% &childPID,
  17.         }
  18. _END
复制代码

作者: 红毛樱木    时间: 2018-7-17 19:33
527104427 发表于 2018-7-17 19:14
要翻墙,下载不到。试试吧:

看样子是装逼成功了,恭喜楼主获得秘籍
作者: saiz    时间: 2018-7-18 09:59
527104427 发表于 2018-7-17 19:14
要翻墙,下载不到。试试吧:

測試OK 十分感謝!!




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3