2011-07-21 89 views
6

我希望添加一個Windows計劃任務git推到github每晚。我有一個CMD文件。當我在Windows命令提示符下運行CMD文件時,它工作正常。但是,當我通過Windows計劃任務運行它。它永遠卡住了。狀態是「正在運行」。從日誌中我可以看到它成功啓動了git bash shell。任何想法?Windows計劃任務git推到github

echo git push > i:\gitpush 
echo 'pushing' >>log1 
C:\WINDOWS\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login i:\gitpush" >>log1 2>>error  
echo 'done pushing' >>log1 
del i:\gitpush 

這裏是日誌輸出:

'pushing' 
Welcome to Git (version 1.7.4-preview20110204) 


Run 'git help git' to display the help index. 
Run 'git help <command>' to display help for specific commands. 

然後我做了一個實驗,以gitpush腳本重命名爲一個錯誤的文件名。並且它立即退出,錯誤「沒有這樣的文件或目錄」,這是預期的。它顯示gitpush腳本正確傳入bash,但由於某種原因它被卡住了。

我必須通過git bash shell的原因是因爲我不知道如何在不使用git bash shell的情況下在Windows命令行shell中設置公鑰。

謝謝!

回答

2

我不知道如何設置公共密鑰在Windows命令行shell

公鑰/私鑰還工作在DOS shell,只要你定義%HOME%環境變量(引用父目錄的.ssh

與Windows計劃任務的關鍵是要確保:

  • 實際上是在運行任務(「系統帳戶」?或實際用戶?)
    顯示「env」可以幫助調試問題。
  • 其中它運行:如果git push依賴於當前路徑來正確推送當前回購,那麼您需要確定您的任務運行在應該運行的位置。
+0

%HOME%做到了!謝謝! –

+1

我的情況是調用一個預定的powershell腳本,它在登錄時工作,但在作爲任務運行時掛起ssh.exe。在調用git之前,明確設置$ env:HOME =「path-to-home」。 –

+0

讓它用完目前的回購有什麼竅門?這只是將文件放入回購站的問題嗎?我正在調用一個文件,例如C:/ a,當git repo路徑實際上是C:/ b – exhoosier10