[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理求教:根据进程是否存在执行不同的操作

批处理命令“M”
---------------------------------------------
要求:

寻找A.exe并运行

找不到A.exe,结束命令“M”并回显“提示001”

找得到A.exe,运行A.exe .当A.exe(进程A.exe)自己运行结束 结束命令“M”

以下是例子:但缺乏 当A.exe(进程A.exe)自己运行结束 结束命令“M” 求补充
  1. @echo off
  2. set "str=A.exe"
  3. set "drv=c d e f g h i j k l m n o p q r s t u v w x y z"
  4. for %%a in (%drv%) do (
  5. if exist %%a: (
  6. for /f "delims=" %%b in ('dir /s/b/a-d "%%a:\%str%" 2^>nul') do (
  7. if not "%%b"=="" (
  8. start "" "%%b"
  9. exit
  10. )
  11. )
  12. )
  13. )
复制代码

本版规则
1、求助时,务必在顶楼一次性把问题交代清楚,建议给出完整有针对性的样本,样本过大可发网盘分享链接。勿发无意义的标题
2、使用 code 标记把代码部分括起来(单击回复框的 <> 按钮,复制粘贴代码进去),以便复制。问题解决后,请编辑顶楼帖子在标题前面注明[已解决]http://www.bathome.net/thread-3473-1-1.html
3、提问前先使用论坛搜索,相同或类似的问题就无需再发帖了

TOP

回复 2# pcl_test


    已修正

TOP

不用start命令,用call命令
start另起窗口线程了,就监控不到了
call执行完后,继续往下走。
人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

仍然未看懂

TOP

  1. @echo off
  2. for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z a b) do (
  3. if exist "%%i:\" (
  4.   for /f "delims=" %%j in ('dir/a-d/s/b/l/on "%%i:\*.exe"') do (
  5.    tasklist|findstr/i "a.exe">nul2>nul||(
  6.     if /i "%%~nxj"=="a.exe" (
  7.      start/i "" "%%j"
  8.      tasklist|findstr/i "%%~nxj">nul2>nul&&(tasklist|findstr/i "m.exe">nul2>nul&&taskkill /f /t /im "m.exe")
  9.     )
  10.     tasklist|findstr/i "m.exe">nul2>nul&&(taskkill /f /t /im "m.exe"&echo=提示001)
  11.    )
  12.   )
  13. )
  14. )
  15. pause
复制代码
真没见过这么乱的提问,只能按照大概编写了,注意:M≠CMD

TOP

返回列表