пятница, 27 января 2012 г.

PowerShell. Обновление шаблонов рабочих элементов во множестве проектов TFS


Пример скрипта, который обновляет во множестве проектов TFS шаблоны рабочих элементов.


cls
# Путь к команде witadmin
cd 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE'

# Рабочие элементы, которые необходимо обновить
$wits=@('Bug','Change Request','Issue','Requirement','Risk','Shared Steps','Task','Test Case')


# Имя сервера
$srv='http://tfs:8080/tfs/infotecstc1'


# Проекты
$projects=@('Project1','Project2','Project3')

# Путь к шаблонам рабочих элементов
$fld='C:\TFS Template\Company Template v1.00\WorkItem Tracking\TypeDefinitions'

# Служебная переменная (общее время выполнения)
$gen_sec=0

foreach ($p in $projects)
{
    $prj_sec=0
    write-host ' '
    write-host '---------- '          
    write-host 'Проект ' -nonewline
    write-host $p -nonewline -foregroundcolor Red
    write-host '... '
    write-host ' '
    foreach ($w in $wits)
    {
        write-host 'Загрузка рабочего элемента ' -nonewline
        write-host $w -nonewline -foregroundcolor Red
        write-host  ': ' -nonewline
     
        $sec=(measure-command {$outtext=.\witadmin importwitd /collection:$srv /p:$p /f:$fld'\'$w'.xml'}).totalseconds
        }          
     
        $sec_f= "{0:N2}" -f $sec
        write-host $outtext  -nonewline
        write-host ' |' $sec_f '| '      
     
        # Время загрузки для всего проекта
        $prj_sec += $sec
    }
    $gen_sec += $prj_sec
    $prj_sec = "{0:N2}" -f $prj_sec
    #$prj_sec = new-timespan -seconds $prj_sec  
    write-host
    write-host  'Время загрузки: ' -nonewline                    
    write-host $prj_sec -nonewline -foregroundcolor Red
    write-host ' сек.'
 
}
    $gen_min = "{0:N2}" -f (new-timespan -seconds $gen_sec).totalminutes
    write-host
    write-host 'Общее время загрузки: ' -nonewline
    write-host $gen_min -nonewline -foregroundcolor Red
    write-host ' мин.'

Комментариев нет:

Отправить комментарий