2010-04-26 1 views
2

Я пытаюсь изменить цвет вывода на основе записи-записи на основе свойства lastrunoutcome заданий SQL Server в Powershell .... как в ... если работа была успешной, вывод lastrunoutcome - «Успех» в зеленом цвете .... если не удалось, то «Сбой» красным цветом. У меня скрипт работает, чтобы получить желаемый статус работы ... Я просто не знаю, как изменить цвета.Изменить цвет вывода записи-хозяина на основе foreach if elseif result в Powershell

Вот что я до сих пор:

# Check for failed SQL jobs on multiple servers 

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null 

foreach ($svr in get-content "C:\serverlist2.txt") 

{ 
    $a = get-date 
    $BegDate = (Get-Date $a.AddDays(-1) -f d) + " 12:00:00 AM" 
    $BegDateTrans = [system.datetime]$BegDate 

    write-host $svr 

    $srv=New-Object "Microsoft.SqlServer.Management.Smo.Server" "$svr" 

    $srv.jobserver.jobs | where-object {$_.lastrundate -ge $BegDateTrans -and $_.Name -notlike "????????-????-????-????-????????????"} | format-table name,lastrunoutcome,lastrundate -autosize 
foreach ($_.lastrunoutcome in $srv.jobserver.jobs) 
{ 
    if ($_.lastrunoutcome = 0) 
     { 
     -forgroundcolor red 
     } 
    else 
    {} 
    } 
} 

Это, кажется, ближе всего я получил ... но это дает мне ошибку «» LastRunOutcome «является ReadOnly свойство».

Любая помощь была бы принята с благодарностью!

Спасибо!

Эмо

ответ

1
if ($_.lastrunoutcome = 0) 

выглядит как ошибка; это должен быть оператор «-eq», а не «=». То есть:

if ($_.lastrunoutcome -eq 0) 
+0

Если изменить код от «=» на «-EQ» Я просто получаю ошибку «Термин„-forgroundcolor“не распознается как имя командлета, функции, файла сценария , или действующая программа ". – Emo

+0

Я знаю, что -eq является сравнительным аргументом, который здесь не работает – Emo

+0

Ну ... черт возьми ... Я не знаю..Игнорировать мои последние два комментария LOL! – Emo

1

параметры «Splat» позволяют передать хэш пар имя-значение параметра функции или командлета. Этот хэш может быть построен по нарастающему ...

$extraArgs = @{} 
if ($thingsFailed) { 
    $extraArgs["foregroundColor"] = "Red" 
} 

write-host "Message" @extraArgs 

Если хэш пусто ничего не будет добавлено, но если $thingsFailed был установлен на выходе будет красным.

Смежные вопросы