無解
死心吧
Windows的工作排程
無法正常跑 bat 檔的
要把 bat 檔轉成 exe 檔才能放在Windows的工作排程裡跑
轉了也一樣
咦?
那我怎麼可以在排程中跑BAT?
之前都是用BAT在排程中跑NTBACKUP...
我是手動從檔案總管點 bat 去跑, OK
但是放到工作排程, 怎樣都跑不起
我是在 bat 裡跑 sqlcmd 去備份 db
再用 7-zip 去壓縮檔案
再 xcopy 到連線磁碟機的遠端分享資料夾
Windows工作排程是給Administrator權限去跑的
可是每次該執行的時候, 直接回傳 -1 連 sqlcmd 都沒跑就跳掉了
剛實際測一下,真的可以啊
你要不要在BAT最後加個pause來看看他跑啥錯誤阿...
其實重點就是eigen大所說的【要注意排程啟動時的權限、路徑位置、程式的位置、相關檔案的位置】
路徑與權限
所以我會盡量寫絕對路徑...
然後注意工作路徑...
如果SQLCMD沒跑,那找一下SQLCMD在哪,前面的完整的絕對路徑都寫進去批次中,然後再試試看
我後來在
sqlcmd -S . -i "加入.SQL的絕對路徑"XMKEYDBLY50.sql
forfiles /p e:\ly\ /m *.dat /d -7 /c "cmd /c del /f @path"
目前有正常RUN了 再觀察幾天看看
hagtewei
我記得mssql的權限,區分滿多的
要找對權限在給"排程"執行
有需要google一下比較保險
可以手動執行,就可以排程執行
要注意排程啟動時的權限、路徑位置、程式的位置、相關檔案的位置。
最簡單的做法就是寫一個 test.bat,將你要的動作,寫在這個檔案內,測試ok 後
將這個檔案 copy 到其它目錄下,再測試,如果ok ,那表非batch file 沒有受路徑限制
再用排程來call 這個批次檔。
排程絕對可以call batch file ,這種手法,我已用了好多年。會出問題,一定是我寫錯,而不是排程有bug.