2011-11-11 46 views
2

我已經安裝了GnuWin32,所以我試圖用linux命令創建一個批處理文件以從SVN獲取修訂號並將該修訂號寫入文件。目前,我有:從svn獲取修訂號的批處理腳本

svn info | grep -i "Revision" | cut -d" " -f2 | tr -d '\n'>> %~dp0../../Include/Version.hpp 

但該命令會一直給我的SVN版本號,但隨後是訓練新的生產線,從而讓我有以下幾點:

// Version.hpp 
"some revision #" << followed by a '\n' 
    << a new line is here 

我希望我已經做了我的問題明確。有誰知道爲什麼會發生這種情況,當命令從批處理文件運行,而不是當我直接在控制檯中執行它?我該如何解決這個問題,以便在將修訂號寫入文件時,linux命令不會附加新的培訓行?

感謝您的任何見解。

+0

有趣的問題。儘管可能沒有幫助,但我確實在Mac上使用bash 3以及在管道末尾添加'tr -d'\ n''的技術,然後再添加到文件中,以便從命令行工作正常_and_在shell腳本中。你可能發現了一個GnuWin32問題。我認爲這與SVN沒有任何關係。看看你是否可以先用簡單的文本複製問題。 –

回答

0

奇怪...也許最後的新行來形成重定向。你有沒有試過這個:

echo -n $(svn info | grep -i "Revision" | cut -d" " -f2 | tr -d '\n') >> %~dp0../../Include/Version.hpp 

但是,嘗試在我的Linux站,這兩個解決方案對我來說工作得很好!使用本地Linux系統:-p!

+0

好吧,沒有什麼工作的人:(我已經能夠跟蹤「切」命令的問題。你們知道在DOS控制檯中操縱控制檯輸入/輸出的方法嗎? – czchlong