在bat 中启动shell。

因为需要用到cygwin,来执行 每日定时任务

有一种cygwin 里面安装定时任务来完成。

但是在windows下或许会比较麻烦,考虑到windows自身有计划任务,如果能将制定计划任务,每天按时启动应用程序,或者bat脚本。

因为脚本是shell脚本,所以在windows下是无法直接执行的,只能通过cygwin。

所以必须现在 bat中启动cygwin,编写bat文件:

@echo off
rem change to d:
d:
rem change the dir
chdir D:\cygwin\bin
echo "begin..."
rem start the cygwin and run the shell file.
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标准。



你可能感兴趣的:(在bat 中启动shell。)