Hier ist das Problem: Ich möchte Subversion für die Revisionsnummer eines Repositorys abfragen und dann ein neues Verzeichnis mit der Revisionsnummer im Namen erstellen (z. B. "Build763 ").Extrahieren eines bestimmten Werts aus der Befehlszeilenausgabe mit Powershell
Der Befehl "svn info" gibt eine Anzahl von Label \ Wert-Paaren aus, die durch Doppelpunkte getrennt sind. Zum Beispiel
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)
Hier ist mein aktueller Code, der das Problem löst. Gibt es eine Möglichkeit, dies mit weniger Code zu tun? Ich denke, mit der Verwendung von Rohrleitungen könnte man das mit ein oder zwei Zeilen machen. Ich sollte sicherlich keine temporäre Datei verwenden müssen.
$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;
Sie Sie dafür machen graben Capture, nicht wahr? – mjolinor
Nun, Sie könnten einfach '(svn info $ RepositoryPath) -Replace '^ Revision: (\ d +) $', '$ 1'', um die Erfassung zu bekommen;) – Jaykul
Das ist besser. Ich muss mich daran erinnern. – mjolinor