来源:自学PHP网 时间:2015-04-17 17:13 作者: 阅读:次
[导读] windows下实现在bat中启动shell因为需要用到cygwin,来执行 每日定时任务有一种cygwin 里面安装定时任务来完成。但是在windows下或许会比较麻烦,考虑到windows自身有计划任务,如果能将制定...
windows下实现在bat中启动shell
因为需要用到cygwin,来执行 每日定时任务
有一种cygwin 里面安装定时任务来完成。
但是在windows下或许会比较麻烦,考虑到windows自身有计划任务,如果能将制定计划任务,每天按时启动应用程序,或者bat脚本。
因为脚本是shell脚本,所以在windows下是无法直接执行的,只能通过cygwin。
所以必须现在 bat中启动cygwin,编写bat文件:
1
@echo off
2
rem change to d:
3
d:
4
rem change the dir
5
chdir D:\cygwin\bin
6
echo "begin..."
7
rem start the cygwin and run the shell file.
8
D:\cygwin\bin\mintty.exe /home/scripts/webFunc
出现一个问题:启动cygwin后,无法运行命令,困扰了好几天。一直不知道为什么直接启动快捷方式可以运行,但是通过bat启动就无法找到“ls,find,mkdir”等命令。。一开始一直以为是bat中需要给cygwin传递一些参数,查看它的快捷方式,并没有发现很特别的参数。
一直到刚才,才意识到是环境变量的问题,于是在环境变量的path后追加 cygwin\bin;问题解决了。
一个需要注意的小地方,我的shell脚本中有用到find, 而windows下find也是有的。所以系统默认使用的是windows下的find命令,于是总是报出一个“参数错误”的异常。 将shell中的find 改为 /user/bin/find 后,问题解决,好在我的脚本并不多,也就两三个地方用的find。更改后正常执行。
另外就是脚本中用到mysql ,所以需要安装mysql 并添加环境变量。
从linux下移植到windows,听起来很简单的事情,做的时候遇到的问题还是挺多,还有一个问题就是代码中出现路径的问题。 当初写代码的同学将所有查找配置的路径都是写死的,/home/...现在移植到的时候,只要自己手动全改成windows能识别的。 以后也要多注意,尽量路径也符合 posix标准。
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com