Erstellen von Skripts auf dem plattformübergreifenden Befehlszeilenclient für Team Foundation Server
Möchten Sie gerne Aufgaben automatisieren, beispielsweise das Einchecken und Auschecken von Quellcode?Zu diesem Zweck können Sie entweder die externe oder die interne Automatisierung verwenden.Zunächst untersuchen wir diese beiden Automatisierungsmodi.Sie können aber auch direkt zum Abschnitt Vor- und Nachteile der beiden Methoden gehen.
Externe Automatisierung
Die externe Automatisierung konfiguriert einen anderen Prozess, der jedes Mal wieder das tf-Befehlszeilentool mit vollständig kontextbezogenen Argumenten aufruft.Zum Aktivieren dieses Modus ist keine spezielle Syntax erforderlich.Sie können einen der folgenden externen Prozesse verwenden, um diese Methode zu implementieren:
Eine Unix-Shell, beispielsweise sh, ksh, bash oder csh
Perl oder eine andere Programmiersprache, die für die Skripterstellung verwendet wird
Apache Ant oder ein anderes buildorientiertes Tool
Jedes andere Tool, das das tf-Programm starten und Argumente bereitstellen kann
Interne Automatisierung
Bei der internen Automatisierung wird das tf-Befehlszeilentool so konfiguriert, dass es den Automatisierungsprozess steuert und eine Befehlsdatei interpretiert, die als Argument übergeben wird.Sie können die interne Automatisierung aufrufen, indem Sie für eine Befehlsdatei das @-Zeichen unmittelbar gefolgt von einem lokalen Pfad angeben.Alle zusätzlichen Argumente, die Sie in dieser Befehlszeile bereitstellen, sind für die Befehle in der Befehlsdatei als Positionsargumente verfügbar.
Hinweis |
---|
Um die Standardeingabe als die Befehlsdatei zu verarbeiten, geben Sie das @-Zeichen ohne einen darauf folgenden Dateinamen an (tf@).Der Eingabestream wird entsprechend der Standardcodierung und dem Zeichensatz der Plattform als Text interpretiert. |
Die folgenden Befehlsdatei ruft die angegebene Version einer Datei ab und gibt ausführliche Versionsinformationen zu dieser Version aus.
# This line is ignored because it is a comment.
get "-version:%2" -force "%1"
history -format:detailed "-version:%2" "%1"
Die Befehlsdatei mit dem Namen /home/john/get-and-history.tfc erwartet zwei Positionsargumente, sodass Sie sie wie im folgenden Beispiel gezeigt ausführen können:
tf @/home/john/get-and-history.tfc README.doc C5087
Das erste Argument, README.doc, ersetzt %1, wenn die einzelnen Zeilen interpretiert werden.%2 wird durch C5087 ersetzt.
Hinweis |
---|
In der Befehlsdatei werden beide Positionsargumente in doppelte Anführungszeichen eingeschlossen, da die dafür eingesetzten Werte möglicherweise Leerzeichen enthalten (beispielsweise ein Dateiname oder eine Datumsversionsspezifikation). |
Das Format der Befehlsdatei kann durch die erweiterte Backus-Naur Form (EBNF) beschrieben werden:
command file ::= { line } ;
line ::= comment line | blank line | action line , EOL ;
comment-line ::= "#" | "rem" , { ? any non-EOL character ? } ;
blank line ::= { ? any whitespace character ? };
action line ::= tf command , [ { white space , tf option } ] , [ { white space , tf free argument } ] ;
tf command ::= ? any tf command ?
tf option ::= ? any tf option ? | positional argument ;
tf free argument::= ? any tf free argument ? | positional argument ;
positional argument::= "%" , non-zero digit , [ { digit } ] ;
EOL ::= ? your platform's EOL character or sequence ?
white space ::= { ? any non-EOL whitespace character ? }
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
non-zero digit ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
tf command kann jeder gültige tf-Befehl sein, beispielsweise get, workfold oder workspace.
tf option kann jede gültige tf-Option sein, beispielsweise -login, -profile oder -format.
tf free argument kann jede Zeichenfolge sein, die nicht als freies Argument für tf vorgesehen ist, beispielsweise ein Serverpfad oder ein lokaler Pfad.
positional argument ist ein Platzhalter für Text, der über die äußeren tf-Befehlszeilenargumente ersetzt wird.Die Zahl ist eine positive ganze Zahl, die dem Index des zu ersetzenden Befehlszeilenarguments entspricht, beispielsweise "%1" oder "%2".%1 verweist auf das erste Argument.Sie können Positionsargumente als Optionen oder freie Argumente in beliebiger Reihenfolge nach dem Befehl verwenden.
Hinweis |
---|
Setzen Sie Optionen und Argumente, die Leerzeichen enthalten, in doppelte Anführungszeichen.Verwenden Sie beispielsweise “-version:LRelease 2.1” für einen Bezeichnungsspezifizierer, “$/Inventory/Client Project/main.c” für ein freies Argument und "%1" für ein Positionsargument, das möglicherweise Leerzeichen enthält.In den Befehlsdateien werden Optionsgrenzen nur durch doppelte Anführungszeichen angegeben.Einzelne Anführungszeichen werden als solche interpretiert.Um ein echtes doppeltes Anführungszeichen in der Aktionszeile anzugeben, müssen Sie zwei doppelte Anführungszeichen nacheinander verwenden ("").Die Regeln für die Verwendung von Anführungszeichen in Befehlsdateien unterscheiden sich möglicherweise von den Regeln, die die Shell verwendet, da die Shell die Zeilen in der Befehlsdatei nicht analysiert. |
Vor- und Nachteile der beiden Methoden
Welche Methode sollten Sie also verwenden – die externe oder die interne Automatisierung?Dies sind die Vor- und Nachteile der beiden Methoden:
Externe Automatisierung |
Interne Automatisierung |
|
Vorteile |
|
|
Cons |
|
Sie ist nicht so flexibel wie die externe Automatisierung.Dies sind die Gründe:
|