我有这个powershell代码,它可以获得任何没有错误代码为0并且状态为“Ready”的计划任务:
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'将输出为'Running'。
我有这段代码,但我不确定如何将其实现到我的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'}
}
答案 0 :(得分:2)
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: /Library/Server/Web/Config/php
Additional .ini files parsed: (none)
您可以使用键值对将状态指定为枚举或对象,然后从提供的字段中获取其字段。请注意,如果遇到意外的$states=@('Unknown','Disabled','Queued','Ready','Running')
Get-ScheduledTask |
Where-Object {($_.LastTaskResult -NE '0') -AND ($_.State -LIKE '3') } |
Select-Object @{Name="Task Name";Expression={$_.Path}}, LastRunTime, NextRunTime, LastTaskResult, @{name='State';expression={$states[$_.state]}}
,则该列将具有null而不是raw状态值。在您的情况下,state
可以是一个简单的基于0的数组,因为您的枚举不是空心的并且从0开始。
答案 1 :(得分:1)
有一个非常简单的解决方案(我自己也遇到了同样的问题):
转换为字符串!
"localSourceRoot": "http://127.0.0.1/(your public html folder)/"
或者这是我的版本:
New-Object -TypeName PSCustomObject -Property @{
'Name' = $_.name
'Path' = $_.path
'State' = "$($_.State)"
}