1
我有这样的PowerShell的代码,获取不为0的错误代码,并有“准备”的状态的预定任务:PowerShell的计划任务报告 - 从数字的变化状态字
Get-ScheduledTask | Select-Object @{Name="Task Name";Expression={$_.Path}}, LastRunTime, NextRunTime, LastTaskResult, State | Where-Object {($_.LastTaskResult -NE '0') -AND ($_.State -LIKE '3') }
下面是一个输出例如:
Task Name : \UserScheduleTaskNet4
LastRunTime : 21/04/2017 15:25:00
NextRunTime : 21/04/2017 15:30:00
LastTaskResult : 267009
State : 4
我想状态,以作为字而非数字输出 - 在这种情况下,状态“4”将作为“正在运行”输出。
我有这个代码片段,但我不知道如何实现它变成我的Select-Object
的cmdlet:
New-Object -TypeName PSCustomObject -Property @{
'Name' = $_.name
'Path' = $_.path
'State' = switch ($_.State) {
0 {'Unknown'}
1 {'Disabled'}
2 {'Queued'}
3 {'Ready'}
4 {'Running'}
Default {'Unknown'}
}
谢谢开始 - 我能不能先确认一下......我看你已经把'在那里,object'在'选择-object' cmdlet的前cmdlet的是,仅仅更好的做法还是会做出我的结果有区别吗? – Ricky
没有区别主要是,但是如果你的地方选择之后,你不能按属性过滤你没有选择。另外最好先过滤,然后选择,格式等。 – Vesper