windows下批处理脚本,定时检查某一进程是不是存在,若不存在则通知用户打开此进程;若存在则退出。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows下批处理脚本,定时检查某一进程是不是存在,若不存在则通知用户打开此进程;若存在则退出。相关的知识,希望对你有一定的参考价值。
定时可以通过计划任务来执行,但是怎样判断进程是否存在啊?希望大家能给出一个范例脚本。在此十分感谢!!!!!!
@echo off:x
tasklist /nh|find /i "进程.exe"
if ERRORLEVEL 1 (Msg %username% 进程.exe不存在,请启动此进程。 ) else (ping -n 3 127.1>nul)
goto x
这个是相隔3秒检测一次,检测不到会弹出消息,检测到则三秒后循环检查追问
您上面的脚本,如果进程不存在他会一直在不停的提示;另外怎样让其在后台执行,对用户来说只能看到提示信息。而且这个批处理怎样让它一直在运行从而能一直监控需要监控的进程。谢谢!
参考技术A @echo offfor /f %%i in ('tasklist /nh') do if "%%i"=="qq.exe" echo 进程存在 & goto hello
echo 进程不存在
:hello
pause 参考技术B 行在后台定时自动执行估计比较难,用计划任务把
win下自动sftp脚本定时下载文件
缘起一个BA与客户交流的软件。但因为数据不能通过系统直连的方式进行获取。
对方只提供每天一份全量数据到指定文件夹下,我方自动通过sftp的方式去拉取。
一个只有简单几行的操作,想必肯定是不可能需写程序去实现的吧。
第一时间就想到了windows的定时任务去执行一个脚本就好。
找来找去,网上一堆的ftp脚本。sftp的少得可怜。
后面找到了此文:https://www.cnblogs.com/binw/p/4065607.html
但因为不懂winscp。里面的代码也不大懂。
折腾一天后,发现putty可以sftp,
写出了以下脚本
psftp -P 2122 username@122.135.172.119 -pw awUV2kCU cd /upload_ba lcd D:\\xhx_ba_csv mget *.csv
但有一个问题,执行第一行后就进入psftp程序了,并没有再执行下面的代码。
后来又只能返回去看winscp了,折腾一两小时后,终于成功了。
CD /d D:\\WinSCP #定义要获取的文件名 set filename=T_sulwba_%date:~0,4%%date:~5,2%%date:~8,2% #通过winscp直接带参数的方式自动获取文件 winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://<username>:<pwd>@<ip>:<port>" "option transfer binary" "get /upload_ba/%filename%.csv D:\\xhx_ba_csv\\upload_ba\\" "exit"
最后,在windows的计划任务中设定每日自动此bat文件即可。
附:windows下日期格式
1.获取日期
格式: %date%
结果: 2012-07-31
2.获取时间
格式: %time%
结果: 10:21:21.68
3.获取日期和时间
格式: %date:~x,y%以及%time:~x,y%
说明: x是开始位置,y是取得字符数
比如说我要获取完整的日期和时间,
格式: %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
结果: 20120731111039
但是如果时间早于10点,那么只显示日期不显示时间,如:20120731,如何解决呢?
格式: %date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%
结果: 20120731052539
以上是关于windows下批处理脚本,定时检查某一进程是不是存在,若不存在则通知用户打开此进程;若存在则退出。的主要内容,如果未能解决你的问题,请参考以下文章