Board logo

标题: [系统相关] cmd调用执行exe程序后,如何在进程中识别该程序正在执行 [打印本页]

作者: 暴牙弟    时间: 2021-2-16 00:54     标题: cmd调用执行exe程序后,如何在进程中识别该程序正在执行

是这样的,我将ecloud这个可执行程序添加到环境变量中了,一直在批处理或者cmd里面直接执行ecloud.exe,而且用for语句实现软件功能。现在有个问题,我需要添加一段判定ecloud是否在运行的条件,但是在cmd中直接执行的exe程序在tasklist中是看不到ecloud这个进程的,而是cmd.exe这个进程。如果调用start ecloud.exe的话,for语句不起作用。(受软件本身原因)这情况下怎么办才好?
  1. for /f %%i in ('Tasklist^|Findstr /i "ecloud.exe"') do (
  2.     for /l %%a in (10,-1,1) do (
  3.     cls
  4.     echo 检测到有ecloud进程,程序不做任何动作,将在%%a秒后重新检测进程。
  5.     ping 127.1 -n 2 >nul
  6.     )
  7.     goto :B
  8. )
  9.     REM 判断是否存在“完成”文件夹,如果存在,则开始for语句上传。如果不存在,则创建“完成”文件夹
  10.     if exist "完成" (
  11.     goto upload
  12. ) else (
  13.     md "完成"
  14. )
  15.     REM 遍历目录下的mkv文件并开始逐一上传到天翼云盘里的“电影”文件夹,完成上传后移动到“完成”文件夹中。注意:ecloud命令为github上的命令行执行文件,并添加到系统环境中执行的。
  16.     :upload
  17.     for /f "delims=" %%i in ('dir /a-d /os /b *.mkv') do (
  18.     ecloud u %%~ni.mkv /电影
  19.     move %%~ni.mkv 完成
  20. )
  21.     REM 将已完成上传的mkv文件全部送进回收站中。
  22.     binit 完成
  23.     :C
  24. exit
复制代码

作者: flashercs    时间: 2021-2-16 15:47

tasklist看不到ecloud.exe进程,那怎么知道ecloud正在运行?修改ecloud源码,改为单实例。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2