好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

windows下实现在bat中启动shell - Windows操作系统 - 自

windows下实现在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标准。

 

查看更多关于windows下实现在bat中启动shell - Windows操作系统 - 自的详细内容...

  阅读:63次