批处理 如何检测某个程序是否在运行

我现在写了CreateObject("WScript.Shell").Run "d.bat",0,FALSE一条指令,我想在这前面加一个判断d.bat是否在运行,如果在运行就提示程序正在运行,且不运行d.bat,如何没有运行才执行运行d.bat

bat是解释脚本,所以运行时并不是bat本身在运行,而是它的解释器cmd.exe在运行。您这个思路应该不行。
有一个折衷的办法,就是b.bat在运行开始写一句@echo A>runlog.txt,在结尾在写一句@echo Z>runlog.txt。
您检测的批处理可以循环读取runlog.txt的内容,直接写
@if exist runlog.txt (
@set /p runcheck=<runlog.txt
@if %runcheck%==A (
@echo b.bat在运行
) else (
@echo b.bat未运行
)
) else (
@echo b.bat位运行
)追问

追答

那就两端结合起来,您这么试试看。
@if exist runlog.txt (
@set /p runcheck=e:\abc\runlog.txt
@cd /d e:\abc
@copy /y "exc.btf" "ac2\"
@copy /y "ac1\xec.btf"
@start "" "abc.exe"
@ping -n 5 127.0.0.2>nul
@copy /y "ac2\exc.btf"
@echo Z>e:\abc\runlog.txt
:X

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网