好吧也许标题不是最好的总结,对我来说更好解释。
我理解在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。
答案 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更新之后,我需要将所有文件名作为参数发送到构建机器。