使用switch语句更改元素的输出

时间:2017-11-07 13:52:33

标签: powershell

我需要一些帮助。

我有一个从报告中导入csv数据的数组。数据包含服务器名称,开始时间和最终任务状态代码。

ServerName     Start Time           Final task Code
SERVER1        07/11/2017 01:35:30        19                                                                                   
SERVER2        07/11/2017 01:35:31        19                                                                 SERVER3        07/11/2017 01:35:33        6**

我相信我需要编写一个switch语句来将Final任务代码更改为更多用户友情。 Code 19 = SuccessfulCode 6 = Error

我写了以下switch语句:

switch ($Successrate.FinalJobStatus){
    19 {"100% Success"}
    6 {"Error"}
}

这将按预期更改屏幕输出,但我很难将最终任务代码的输出设为100% successError,而不是196

有人可以帮忙吗?

这是我的代码:

$Successcutofdate = (Get-Date).AddDays(-1)
$Successrate = import-csv C:\ITO\RB\PROD\Reports\Success.csv | Where-Object ({$_.ActualStartTime -as [datetime] -gt $Successcutofdate}) |select-Object @{n='Server Name';e={$_.ResourceName }},   @{n='Start Time';e={$_.ActualStartTime}} , FinalJobStatus| Sort-Object "Server Name"

1 个答案:

答案 0 :(得分:0)

您可以使用计算属性,例如您在同一行中执行的属性:

$Successcutofdate = (Get-Date).AddDays(-1)
$Successrate = import-csv C:\ITO\RB\PROD\Reports\Success.csv | Where-Object ( {$_.ActualStartTime -as [datetime] -gt $Successcutofdate}) | Select-Object @{n='Server Name';e={$_.ResourceName }}, @{n='Start Time';e={$_.ActualStartTime}}, @{n='FinalJobStatus';e={switch ($_.FinalJobStatus){ 19 {"100% Success"} 6 {"Error"}}}} | Sort-Object "Server Name"