你把打开记事本,粘贴下面的代码,保存为一个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引号内是程序的绝对路径,根据自己需要修改,引号后面是程序名,根据自己需要修改,
纯手打,望采纳
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)