读取需要在svn中更新的文件名称到批处理文件中

时间:2013-11-21 09:20:15

标签: svn batch-file

好吧也许标题不是最好的总结,对我来说更好解释。

我理解在svn中显示需要更新哪些文件的方法是使用svn st -u命令,您将获得如下文件列表:

 O        4611   PanelAbility.xls
 O        4611   Figure.xls
 O        4611   Character.xls
    *     4611   GrowthBoard_1.xls
    *     4611   GrowthBoard_2.xls
    *     4611   GrowthBoard_3.xls
    *     4611   PoseTree.xls
 O  *     4611   Panel.xls

有没有办法让我隔离输出所以我只能读取.xls文件名,然后将这些值用作命令行参数?

基本上我需要的是一个调用svn st -u的批处理文件,将文件名读入一系列变量/数组,运行更新,然后使用文件名运行命令行参数,将这些更新的文件读入数据库例如

1)检查需要更新的文件

2)如果有任何文件需要更新,请将它们读入数组

3)更新工作副本

4)对于数组中的每个文件名,运行命令行将其读入数据库

也许批处理文件不适合这个,我需要编写一个脚本或“真正的”程序。如果是这样我该怎么办?

我正在运行Windows o / s。

2 个答案:

答案 0 :(得分:1)

这将一次提取并显示一个文件名列表。

这使用了来自 - https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

的名为repl.bat的帮助程序批处理文件

repl.bat放在与批处理文件相同的文件夹中或放在路径上的文件夹中。

@echo off
for /f "delims=" %%a in ('svn st -u ^|find /i ".xls" ^|repl ".{17}(.*)" "$1" ') do (
    echo "%%a"
    pause
)

答案 1 :(得分:0)

我最终决定不使用批处理文件,而是使用了我更熟悉的东西--python。 Pysvn是一个很好用的模块。我也使用pycurl,因为在svn更新之后,我需要将所有文件名作为参数发送到构建机器。