因為需要用到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標准。