找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26933|回复: 11

[文件操作] 如何实现限制指定程序/进程的重复运行

[复制链接]
发表于 2018-3-6 22:32:03 | 显示全部楼层 |阅读模式
本帖最后由 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 命令

谢谢!

评分

参与人数 1PB -6 收起 理由
pcl_test -6 未按版规发帖

查看全部评分

发表于 2018-3-7 06:49:54 | 显示全部楼层
  1. @echo off
  2. tasklist|findstr /i "abc.exe"&&ping /n 3 127.1>nul || echo start "" abc.exe
  3. %0
复制代码
循环延时可以自己调整
 楼主| 发表于 2018-3-7 08:05: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
 楼主| 发表于 2018-3-7 21:12:35 | 显示全部楼层

在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 命令

谢谢!
发表于 2018-3-7 21:16:31 | 显示全部楼层
回复 3# tzyxljg

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

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

是否冲突,要看程序是否支持单程序多开。有的程序只能同时运行一个实例。
发表于 2018-3-7 21:21:56 | 显示全部楼层
tasklist命令可以查看当前是否已经有 ABC.exe 进程,如果发现该进程已经存在,那就不要执行 start
 楼主| 发表于 2018-3-7 22:33:55 | 显示全部楼层
tasklist命令可以查看当前是否已经有 ABC.exe 进程,如果发现该进程已经存在,那就不要执行 start
Batcher 发表于 2018-3-7 21:21



    大神 给一个完整的语句吧  谢谢
 楼主| 发表于 2018-3-8 19:28:15 | 显示全部楼层
本帖最后由 tzyxljg 于 2018-3-8 19:30 编辑

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

这回好像意思表达清楚了。。
 楼主| 发表于 2018-3-8 19:34:23 | 显示全部楼层
tasklist命令可以查看当前是否已经有 ABC.exe 进程,如果发现该进程已经存在,那就不要执行 start
Batcher 发表于 2018-3-7 21:21



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

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

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

万分感谢!!!!!!
发表于 2018-3-8 21:02:47 | 显示全部楼层
tasklist /nh|findstr /r /i /c:"^ABC.exe">nul||start ABC.exe
 楼主| 发表于 2018-3-8 22:36:41 | 显示全部楼层
tasklist /nh|findstr /r /i /c:"^ABC.exe">nul||start ABC.exe
0000 发表于 2018-3-8 21:02



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

谢谢你的回复!!!
发表于 2018-3-9 20:13:13 | 显示全部楼层
论坛标注不可以删除原贴标题,请恢复原贴标题,便于其他用户快速搜索
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 03:26 , Processed in 0.020334 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表