Sdílet prostřednictvím


Skriptování v platformě příkazového řádku klienta pro Team Foundation Server

Chcete automatizovat úlohy, například kontrolou a rezervací zdrojového kódu?K dokončení úlohy můžete použít externí nebo interní automatizaci.Nejdříve si zkontrolujme tyto první dva režimy automatizace.Nebo můžete přejít přímo k pros and cons.

Externí automatizace

Externí automatizace konfiguruje jiný proces, který opakovaně vyvolá nástroj příkazového řádku tf nástroj příkazového řádku, vždy s plně kontextovými argumenty.K povolení tohoto režimu nepotřebujete žádnou speciální syntaxi.Použijte jeden z následujících externích procesů implementace této metody:

  • Prostředí Unix, například sh, ksh, bash nebo csh

  • Perl nebo jiný programovací jazyk, který se používá pro skriptování

  • Apache Ant nebo jiný nástroj orientovaný na sestavení

  • Jakýkoli jiný nástroj, který může spustit program tf a zadat argumenty

Interní automatizace

Interní automatizace konfiguruje nástroj příkazového řádku tf pro řízení procesu automatizace a interpretaci souboru příkazů, který se předává jako argument.Vnitřní automatizaci můžete vyvolat zadáním symbolu @, který je ihned následován místní cestou k souboru příkazu.Veškeré další argumenty, které zadáte v tomto příkazovém řádku, jsou k dispozici pro příkazy v souboru příkazů jako poziční argumenty.

[!POZNÁMKA]

Zpracování příkazového souboru jako standardní vstup, dodávání symbolu @, aniž by byl následován názvem souboru (tf@).Vstupní proud je interpretován jako text podle výchozího kódování a znakové sady vaší platformy.

Následující soubor příkazů načte zadanou verzi souboru a vytiskne podrobné historické informace o této verzi.

# This line is ignored because it is a comment.
get "-version:%2" -force "%1"
history -format:detailed "-version:%2" "%1"

Soubor příkazů s názvem /home/john/get-and-history.tfc očekává dva poziční argumenty, takže je možné spustit jako v následujícím příkladu:

tf @/home/john/get-and-history.tfc README.doc C5087

První argument README.doc je nahrazen %1 při interpretaci každého řádku.C5087 je nahrazeno pro %2.

[!POZNÁMKA]

V souboru příkazu jsou oba argumenty umístění uzavřeny do dvojitých uvozovek, protože jejich nahrazené hodnoty mohou obsahovat mezery (například název souboru nebo určení data verze).

Formát příkazu souboru lze popsat pomocí rozšířeného Backusova-Naurova formuláře (EBNF):

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 může být platný příkaz tf, jako například get, workfold, a workspace.

  • tf option může být jakákoli platná možnost tf, jako například -login, -profile a -format.

  • tf free argument může být libovolný řetězec, který je určen jako volný argument tf, například serverová cesta a místní cesta.

  • positional argument je zástupným symbolem pro text, který je nahrazen z vnějších argumentů příkazového řádku tf.Číslo je kladné celé číslo odpovídající indexu argument příkazového řádku, který chcete nahradit, například „%1“ a „%2“.%1 odkazuje na první argument.Za příkazem můžete jako možnosti v libovolném pořadí použít argumenty umístění nebo volné argumenty.

[!POZNÁMKA]

Pomocí uvozovek označte možnosti a argumenty, které obsahují mezery.Například, pro specifikaci popisky použijte “-version:LRelease 2.1”, “$/Inventory/Client Project/main.c” pro volný argument a „% 1“ pro poziční argument, který může obsahovat mezery.Pouze dvojité uvozovky označují hranice možností v příkazových souborech.Jednoduché uvozovky jsou interpretovány doslova.Pokud chcete určit přesné zobrazení uvozovek v řádku akce, je třeba použít dvojité uvozovky společně ("").Pravidla citací uvnitř příkazových souborů se mohou lišit od pravidel, které vaše prostředí používá, protože vaše prostředí nerozdělí řádky v příkazovém souboru.

Výhody a nevýhody dvou metod

Takže jakou metodu byste použili – externí nebo interní automatizaci?Podívejme se na výhody a nevýhody jednotlivých metod:

Externí automatizace

Interní automatizace

Výhody

  • Je flexibilnější, protože může spouštět nejen příkazy tf, ale také další příkazy.

  • Je to jednoduché.Pokud jste obeznámeni s externím procesem nebo jazykem, vyvolejte nástroj příkazového řádku tf stejně jako jakýkoli jiný proces příkazového řádku.

  • Je snadné provádět ladění.Pokud se některé příkazy nespouštějí podle očekávání, pro diagnostiku problémů nemusíte měnit příkazy na příkazovém řádku.

  • Je to rychlejší než externí metoda.Protože virtuální stroj Java je načten pouze jednou a nástroj příkazového řádku může opakovaně použít jeho připojení k serveru, můžete provést více příkazů v příkazovém souboru rychleji, než pokud každý příkaz spustíte samostatně.

Nevýhody

  • Je pomalejší než interní automatizace.Pro každý vámi zadaný příkaz, musí procesor strávit čas spuštěním Java virtuálního přístroje a přípravou spuštění klienta.

  • Externí proces musí detekovat chyby.Pokud externí proces netestuje zavírací kód každého spuštění, proces může minout chybu.

  • Programování může být obtížnější.Externí proces musí poskytnout všechny příslušné možnosti při každém spuštění nástroje příkazového řádku tf a argumentů, které mohou vyžadovat zvláštní citaci nebo únik.

Je méně flexibilní než externí automatizace.Zde je důvod, proč:

  • V souboru příkazů můžete zadat pouze příkazy tf, takže bude pravděpodobně nutné zapisovat soubory s více příkazy a každý z nich spustit, pokud chcete provádět další úkoly mezi příkazy tf.

  • Provádění se zastaví u prvního chybového stavu, na který narazíte.Není možné vynutit, aby nástroj přeskočil nebo ignoroval chybové podmínky.

  • Je možné, že zabývání se normální nebo výstupní chybou je složitější.Proces, který využívá nástroj s pomocí vnitřní automatizace, nemusí být schopen určit, který řádek v souboru příkazu zpracoval kterou část normálního výstupu.

Viz také

Další zdroje

Command-line Reference (Team Explorer Everywhere)