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

[其他] 求一个批处理能检测另外一个指定的批处理是否正在运行

[复制链接]
发表于 2017-12-23 23:35:56 | 显示全部楼层 |阅读模式
求一个批处理能检测另外一个指定的批处理是否正在运行
发表于 2017-12-24 07:54:09 | 显示全部楼层
本帖最后由 hlzj88 于 2017-12-24 07:57 编辑

批处理一般不可以检测到另外的批处理。是因为假设你开十个cmd窗口,是没法判断你要检测谁是你要的。
但是如果你加一个判断标志文件,就可以检测到指定批处理是否在运行。
  1. @echo off
  2. echo.>d:\标志.txt
  3. ......
  4. del /q d:\标志.txt
  5. exit
复制代码
例子1这样我们只需要检测是否存在d:\标志.txt,就可以判断指定批处理是否正在运行。
  1. @echo off
  2. ......
  3. echo.>d:\标志.txt
  4. exit
复制代码
例子2这样我们只需要检测是否存在d:\标志.txt,就可以判断指定批处理是否运行完毕。
 楼主| 发表于 2017-12-24 11:46:49 | 显示全部楼层
谢谢了,那我问一下可不可以利用相似的命令比如说 taskkill /eq之类的
发表于 2017-12-24 13:06:29 | 显示全部楼层
假设一个批处理只 调用一个findstr ,是可以kill的,但批处理整体的功能受损,如同时有两个findstr,是不能区分和kill的。
 楼主| 发表于 2017-12-24 13:25:58 | 显示全部楼层
好的谢谢啦
发表于 2017-12-24 19:08:51 | 显示全部楼层
待检测的批处理代码里面使用title命令设置一个标题
检测批处理代码里面使用 tasklist 命令找到判断那个title对应的进程是否存在
发表于 2017-12-24 20:40:06 | 显示全部楼层
本帖最后由 老刘1号 于 2017-12-24 20:42 编辑

回复 1# 小渣飞
回复 6# Batcher
回复 4# hlzj88
  1. wmic process where name="cmd.exe" get commandline /value
复制代码
得到所有正在运行的CMD的参数
直接打开bat的话参数基本是固定的,类似
CommandLine="C:\Windows\System32\cmd.exe" /C "R:\TEMP\uh1xsild.3xk.BAT"
这样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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