window平台使用bat批处理实现进程守护
来源:互联网 发布:如何看自己淘宝等级 编辑:程序博客网 时间:2024/04/29 22:38
window平台使用bat批处理实现进程守护需要用到如下一些知识:
一、批处理实现延时一段时间
Windows下批处理文件没有像Linux一样的Sleep函数进行延时处理,这里有2种较为实用的方法实现延迟:
1、使用WScirpt的sleep功能,精度0.001秒
创建vbs延迟文件,然后在批处理文件中调用,使用WScript的 sleep函数,实现sleep的效果。实战:
1)创建文件sleep.vbs:
echo WScript.sleep 5000 > sleep.vbssleep.vbs 内容如下:
WScript.sleep 5000。
2)在批处理文件中调用,创建示例文件test.bat,内容如下:
复制代码 代码如下:
sc stop OracleOraDb10g_home1TNSListenerWscript sleep.vbssc start OracleOraDb10g_home1TNSListener
2、使用ping 的定时功能,精度1秒
实战:创建示例文件test2.bat,内容如下:复制代码 代码如下:
ping -n 3 127.0.0.1>nul说明:3为ping包发送次数,可作为延迟秒数进行使用,需要延迟几秒就设置几。
>nul避免屏幕输出,将输出输入到空设备,因为不需要结果,仅用到其定时功能。
二、批处理实现启动python脚本
bat执行python脚本文件:
:CheckPythonSvrtasklist | find "pythonw.exe" && goto EndSleep || goto StartPythonSvr >nul:StartPythonSvrcd %_dir%\ITF\start /b pythonw %_pythonSvrProcessCmd% >nulecho "restart" %_pythonSvrProcessName% "on" %time% >> %_logFile%:EndSleep
python.exe与pythonw.exe
pyhton安装目录下有一个”pythonw.exe”
来简单说说”pythonw.exe”和”python.exe”的区別:
1)”pythonw.exe”执行时不会出现dos窗口
2)”pythonw.exe”执行时所有stdin和stdout都无效
3)”pythonw.exe”执行时从原有的sdtin只会得到EOF
所以若要执行一些需要在dos窗口中打印出信息的程序,可以将上述代码中的pythonw改成python即可。
来简单说说”pythonw.exe”和”python.exe”的区別:
1)”pythonw.exe”执行时不会出现dos窗口
2)”pythonw.exe”执行时所有stdin和stdout都无效
3)”pythonw.exe”执行时从原有的sdtin只会得到EOF
所以若要执行一些需要在dos窗口中打印出信息的程序,可以将上述代码中的pythonw改成python即可。
三、批处理bat命令获取当前盘符和当前目录和上级目录
1、批处理命令获取当前盘符和当前目录
%~d0 是当前盘符%cd% 是当前目录
可以用echo %cd%进行打印测试
2、通过批处理取当前目录的上一级目录
if %cd%==%cd:~,3% echo 当前目录已经是%cd:~,1%盘的根目录!&goto endcd ..set "bd=%cd%"cd ..set "bbd=%cd%"if "%bbd%"=="%bd%" (echo 上一级目录是: %cd:~,1%盘的根目录!) else call echo 上一级目录是: "%%bd:%bbd%\=%%":endpause
四、批处理bat命令启动的进程在后台运行
在执行的命令前加上start /b,比如start /b run.bat。就相当于Linux下的run.sh &
五、让bat文件后台运行
方法一:bat里有隐藏窗口的命令,只需要在代码头部加如下一段代码即可
@echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit :begin ::下面是你自己的代码方法二:在你批处理的相同目录下新建一个记事本,里面输入
DIM objShell set objShell=wscript.createObject("wscript.shell") iReturn=objShell.Run("cmd.exe /C c:\1.bat", 0, TRUE)(其中win.bat为你自己的批处理名字,自己改)然后把这个记事本保存为后缀名为.vbe的文件,到时候你只要运行这个vbe文件就达到目的了
可以写的简单点:
Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c c:\1.bat",0或者
CreateObject("WScript.Shell").Run "cmd /c c:\1.bat",0
(这种写法很多杀软报毒, 需要替换参数0)
最后那个0是指窗口参数,用法为:
0 隐藏窗口并激活另一窗口。
1 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。
2 激活窗口并以最小化显示该窗口。
3 激活窗口并以最大化显示该窗口。
4 按窗口最近的大小和位置显示。活动窗口保持活动。
5 以当前大小和位置激活并显示窗口。
6 最小化指定窗口并激活按 Z 序排序的下一个顶层窗口。
7 最小化显示窗口。活动窗口保持活动。
8 以当前状态显示窗口。活动窗口保持活动。
9 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。
0 0
- window平台使用bat批处理实现进程守护
- windows下bat批处理实现守护进程
- windows下bat批处理实现守护进程
- windows下bat批处理实现守护进程
- windows下bat批处理实现守护进程(有日志)
- windows下bat批处理实现守护进程(有日志)
- windows下bat批处理实现守护进程(有日志)
- windows下bat批处理实现守护多个进程
- windows下bat批处理实现守护进程(有日志)
- windows下bat批处理实现守护进程(有日志)
- window下使用ftp批处理bat脚本
- windows环境下批处理实现守护进程
- windows环境下批处理实现守护进程
- windows环境下批处理实现守护进程
- windows环境下批处理实现守护进程
- Window批处理(.bat)
- window 批处理 bat
- 使用blat实现在window系统下通过BAT批处理脚本发邮件功能
- rk3188/3288 android 5.x UsbDevice 获取 UsbInterface问题
- 策略模式
- js保留两位小数
- CentOS7自定义开机启动项
- 函数work2
- window平台使用bat批处理实现进程守护
- asp.net mvc3 初学者 用法小结(2)
- 【oracle】查看schema使用情况
- C++第4次试验:项目一(实验)
- C++第四次实验-作业报告(2,3,4)
- C#学习之PadLeft的意思
- 快速排序
- C++指针错误
- 在OkHttp的使用过程中出现下列问题Picasso detected an unsupported OkHttp on the classpath.