这里是问题:我想查询Subversion仓库的版本号,然后创建一个带有版本号的新目录(例如“Build763”)。命令“svn info”输出许多由冒号分隔的标签\值对。例如:
Path: c#
URL: file:///%5Copdy-doo/Archive%20(H)/Development/CodeRepositories/datmedia/Development/c%23
Repository UUID: b1d03fca-1949-a747-a1a0-046c2429f46a
Revision: 58
Last Changed Rev: 58
Last Changed Date: 2011-01-12 11:36:12 +1000 (Wed, 12 Jan 2011)
这是我的当前代码,用于解决问题。有没有办法用更少的代码实现呢?我想通过管道可以只用一两行代码实现。我肯定不应该使用临时文件。
$RepositoryRoot = "file:///%5Cdat-ftp/Archive%20(H)/Development/CodeRepositories/datmedia"
$BuildBase="/Development/c%23"
$RepositoryPath=$RepositoryRoot + $BuildBase
# Outputing the info into a file
svn info $RepositoryPath | Out-File -FilePath svn_info.txt
$regex = [regex] '^Revision: (\d{1,4})'
foreach($info_line in get-content "svn_info.txt")
{
$match = $regex.Match($info_line);
if($match.Success)
{
$revisionNumber = $match.Groups[1];
break;
}
}
"Revision number = " + $revisionNumber;
(svn info $RepositoryPath) -Replace '^Revision: (\d+)$','$1'
来获取捕获的内容 ;) - Jaykul"$()"
)并在两端使用.*,如:"$(svn info $RepositoryPath)" -Replace '.*Revision: (\d+).*','$1'
- Jaykul