求一个bat代码能检测某程序运行然后关闭某程序

求一个bat代码能检测某程序运行然后关闭某程序,第1张

我觉得用VBS来做非常合适,没有隐藏窗口,而且编程方便,而且双击就能运行,无需任何翻译。

你把打开记事本,粘贴下面的代码,保存为一个VBS文件(例如XXX.VBS),然后鼠标双击,就能达到你的效果:

Dim WshShell, url

Set WshShell = WScript.CreateObject("WScript.Shell")

while true

WshShell.Run "taskkill /im notepad.exe"

WScript.Sleep 10000

wend

注意,上面的程序的是每10秒就关闭记事本,如果你需要关闭其它程序,请修改对应的行,如果需要关闭多个不同的程序,可以把此行复制多次修改即可。

你是打算一直开着BAT 然后,程序打开或者关闭就写入吗?

看下面这个行不。格式不要错哦,有图。

@echo off

color df

mode con: cols=60 lines=20

::以下写进程

set course_1="360se.exe"

::-----------------------------

for /l %%a in (1,1,6) do echo\

echo 进程监听中...

echo\

echo 进程为: %course_1%

::course_1 初始

TaskList|Findstr /i %course_1%>Nul

if %errorLevel% equ 0 (

set number1=0

echo 时间:%date% %time% 进程名:%course_1% 状态:开启>>c:\a.txt

) else (

set number1=1

echo 时间:%date% %time% 进程名:%course_1% 状态:关闭>>c:\a.txt

)

::监听

:monitor

title ##进程监听## %date% %time%

::监听course_1

if %number1% equ 0 (

TaskList|Findstr /i %course_1%>Nul

if %errorLevel% equ 1 (

set number1=1

echo 进程名:%course_1% 关闭

echo 时间:%date% %time% 进程名:%course_1% 状态:关闭>>c:\a.txt

)

)

if %number1% equ 1 (

TaskList|Findstr /i %course_1%>Nul

if %errorLevel% equ 0 (

set number1=0

echo 进程名:%course_1% 开启

echo 时间:%date% %time% 进程名:%course_1% 状态:开启>>c:\a.txt

)

)

goto monitor

如果本地机器上没有和远程程序对接的话,进行远程端口监听是要借助其他工具的,这点在bat上很难实现。

另一种情况比较简单:如果你描述的本地和远程程序是有建立连接的话,给你写了一个bat,你可以试一下,这个bat是用本地netstat命令判断是否有对应地址端口连接到本地,达到判断远程程序是否启动的目的。

@echo off

set /p var=请输入目标地址端口

:a

netstat -an | findstr "%var%"

(if %ERRORLEVEL% == 0 (start /d "C:\Users\by\Desktop\20160122" grab.exe) else echo 无进程&&goto a)

pause

目标地址端口处时bat运行后在bat运行窗口填你远程程序所在的IP地址及端口,格式为192.168.1.1:12345

start /d "C:\Users\by\Desktop\20160122" grab.exe引号内是程序的绝对路径,根据自己需要修改,引号后面是程序名,根据自己需要修改,

纯手打,望采纳


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12105509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存