Board logo

标题: [文件操作] 如何实现限制指定程序/进程的重复运行 [打印本页]

作者: tzyxljg    时间: 2018-3-6 22:32     标题: 如何实现限制指定程序/进程的重复运行

本帖最后由 pcl_test 于 2018-3-9 21:02 编辑

@echo off
start  ABC.exe
用批处理 已经运行的可执行文件:ABC.exe.
在 ABC.exe.没有退出的情况下,再次执行此 批处理

@echo off
start  ABC.exe
????
在此语句中加入什么语句,使 ABC.exe 不再启动。。。

就是在执行该命令时,如果 ABC.exe  正在运行 则不再 执行 start  ABC.exe 命令

谢谢!
作者: hlzj88    时间: 2018-3-7 06:49

  1. @echo off
  2. tasklist|findstr /i "abc.exe"&&ping /n 3 127.1>nul || echo start "" abc.exe
  3. %0
复制代码
循环延时可以自己调整
作者: tzyxljg    时间: 2018-3-7 08:05

本帖最后由 tzyxljg 于 2018-3-7 08:18 编辑

不是想实现循环,是想实现 先启动 abc.exe ,在abc.exe 已经运行的前提下,再次运行 abc.exe 时不起冲突。

而且这条语句

tasklist|findstr /i "abc.exe"&&ping /n 3 127.1>nul || echo start "" abc.exe
%0

也没有启动 ABC。exe
作者: tzyxljg    时间: 2018-3-7 21:12     标题: 在abc.exe 已经运行的前提下,再次运行 abc.exe 时不起冲突。

本帖最后由 tzyxljg 于 2018-3-7 21:16 编辑

不是想实现循环,是想实现 先启动 abc.exe ,在abc.exe 已经运行的前提下,再次运行 abc.exe 时不起冲突。

@echo off
start  ABC.exe
用批处理 已经运行的可执行文件:ABC.exe.
在 ABC.exe.没有退出的情况下,再次执行此 批处理

@echo off
start  ABC.exe
????
在此语句中加入什么语句,使 ABC.exe 不再启动。。。

就是在执行该命令时,如果 ABC.exe  正在运行 则不再 执行 start  ABC.exe 命令

谢谢!
作者: hlzj88    时间: 2018-3-7 21:16

回复 3# tzyxljg

上例echo start "" abc.exe去掉echo,即可启动abc。

弄错你的要求,可以这样,也许还是理解错你的要求
start "" abc.exe
ping /n 3 127.1>nul
%0

是否冲突,要看程序是否支持单程序多开。有的程序只能同时运行一个实例。
作者: Batcher    时间: 2018-3-7 21:21

tasklist命令可以查看当前是否已经有 ABC.exe 进程,如果发现该进程已经存在,那就不要执行 start
作者: tzyxljg    时间: 2018-3-7 22:33

tasklist命令可以查看当前是否已经有 ABC.exe 进程,如果发现该进程已经存在,那就不要执行 start
Batcher 发表于 2018-3-7 21:21



    大神 给一个完整的语句吧  谢谢
作者: tzyxljg    时间: 2018-3-8 19:28

本帖最后由 tzyxljg 于 2018-3-8 19:30 编辑

运行ABC.exe,运行前 查看当前是否已经有 ABC.exe 进程,如果发现该进程已经存在,那就不要执行。没有则执行。

这回好像意思表达清楚了。。
作者: tzyxljg    时间: 2018-3-8 19:34

tasklist命令可以查看当前是否已经有 ABC.exe 进程,如果发现该进程已经存在,那就不要执行 start
Batcher 发表于 2018-3-7 21:21



    运行ABC.exe,运行前 查看当前是否已经有 ABC.exe 进程,如果发现该进程已经存在,那就不要执行。没有则执行。

这回意思应该是表达清楚了。

求版主帮助写这段代码。。

万分感谢!!!!!!
作者: 0000    时间: 2018-3-8 21:02

tasklist /nh|findstr /r /i /c:"^ABC.exe">nul||start ABC.exe
作者: tzyxljg    时间: 2018-3-8 22:36

tasklist /nh|findstr /r /i /c:"^ABC.exe">nul||start ABC.exe
0000 发表于 2018-3-8 21:02



    你的代码没有实现 “发现该进程已经存在,那就不要执行”的效果。

谢谢你的回复!!!
作者: /zhqsystem/zhq    时间: 2018-3-9 20:13

论坛标注不可以删除原贴标题,请恢复原贴标题,便于其他用户快速搜索




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