2012-08-03 116 views
3

我想寫一個批處理文件,它將運行一個時間表,它會得到一個日誌文件在XML中。現在每當批處理文件運行時,它就會在今天得到它。SVN從使用批處理文件獲取今天的日誌。

這是我寫的非常基本的,也許是我錯誤的理由。

svn log -v -r {%date%} --xml http://repositorylocation.com > op7.xml 

現在,當我這樣做,我得到的不僅是我需要的日期,但白天的三個字母ancrynom。我需要刪除但不知道如何。有什麼建議?

我在Windows XP上運行這個。

謝謝。

+0

你有Cygwin的? sed/awk或perl非常適合操縱字符串...... – Gus 2012-08-03 21:28:33

+1

'%date%'格式由短日期格式(區域設置)管理,最簡單的方法就是將其設置爲任何您需要的格式。它不能,或者不想將它設置爲用戶範圍,你可以在[這個答案]中檢查技巧(http://stackoverflow.com/questions/10945572/windows-batch-formatted-date-into-variable) – wmz 2012-08-03 21:49:10

回答

1

嘗試以下操作:

set MONTH=%date:~4,2% 
set DAY=%date:~7,2% 
set YEAR=%date:~10,4% 

這應該分別給你的月,日和年。然後,您可以處理你的日誌文件,你想要的任何方式,即

svn log -v -r {%MONTH%-%DAY%-%YEAR%} --xml http://repositorylocation.com > op7.xml 
+1

謝謝你做到了。我得到它工作正常。 – 2012-08-06 19:18:50

2

http://subversion.tigris.org/issues/show_bug.cgi?id=2849

以上似乎表明,你可以通過調整你的locale生效日期格式,但是這是一個非常糟糕的黑客...如果你得到的日期格式可靠地在月和日前加0,那麼hatbyzero可能會工作

做這件事的痛苦但非常可靠的方法是解析xml,解析日期然後重新格式化日期,在xml中設置值,然後將固定的xml寫入文件這可能適用於groovy中使用xml slu RPER。

http://groovy.codehaus.org/Reading+XML+using+Groovy%27s+XmlSlurper

+0

這對我來說很難使用,但確實奏效。謝謝您的幫助。 – 2012-08-06 19:19:20

+1

我確實說過這是「痛苦但可靠的方式」:)。很高興你發現它有幫助。 – Gus 2012-08-06 19:24:11

+0

真的大聲笑,應該看到即將到來,但謝謝你是非常有幫助的。 – 2012-08-07 19:56:20

相關問題