如何在Windows下定期执行一个Bash程序
如何在Windows下定期执行一个Bash程序
1.需要安装Cygwin,详见我写的Cygwin使用心得
2.将Cygwin下面的/bin设置到系统PATH中,比如PATH=%PATH%;c:/cygwin/bin
3.Bash程序里面,如果命令与Windows有冲突的,需要指定路径,比如find命令,Windows也有find命令,但不如Bash下
面的强大,你需要在程序里指定路径,如下:
/bin/find ./ -type f -mtime -10 -mtime +15 -exec rm -f {} \;
(或者,你可以将c:/cygwin/bin/放在PATH的最前面)
与Windows没冲突的命令,你可以直接使用,比如tar,ssh等.
4.制定一个任务与计划,计划的执行命令为:
c:\cygwin\bin\bash.exe c:\scripts\bash\ipaddr\bcomcn.sh
补充:
Windows下在的Schedular调用Bash Scripts需要注意以下几点:
1.调用方法:D:/cygwin/bin/bash.exe D:/mt/scripts/bash.sh (可设置启动路径为D:/mt/scripts/)
2.必须将D:/cygwin/bin加到系统的%PATH%环境变量,否则,除Bash内部命令外,其它Unix命令不可用
3.如果D:/cygwin/bin加在%PATH%最后面,则某些与Windows同名的程序,需要使用全路径,比如:
/bin/find –type f –name “”
如果D:/cygwin/bin放在%PATH%最前面,则可以直接使用find,为安全起见,建议Bash Scripts里面使用全路径的find命令
4.所有系统变量会带到Bash Scripts里面,比如Windows里的COMPUTERNAME可以Scripts里面直接使用$COMPUTERNAME调用。
5.可直接调用Dos命令,如taskkill /F /IM process.exe , C:/progra~1/winrar/rar a bcomcn.rar D:/bcomcn/
6.路径分隔符使用/,而不是\