Powershell where-object |得到最新

时间:2017-01-19 19:42:35

标签: powershell

您好我想只获取带有日期上下文的文件的月份和年份 例如:

Where-Object {$_.StartDate-eq (Get-Date).AddDays(0).ToString("mm.yyyy") } |

当前状态:

 Get-Content "file" -Encoding:String | 
Select -Skip 1 | 
ConvertFrom-Csv |
Where-Object {$_.StartDate -eq (Get-Date).ToString("MM.yyyy") } |
Where-Object {-not $_.DestinationNumber.StartsWith("+49") -and $_.DestinationNumber.StartsWith("+")} |
ForEach { [DateTime]$_.EndTime - [DateTime]$_.StartTime } |
ForEach { $Total=0 } { $Total += $_.TotalMinutes}
[math]::Round($Total,2),'Minuten'

我希望任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

小写'm'表示分钟,你必须使用大写字母M表示月份。像...这样的东西。

{$_.StartDate-eq (Get-Date).AddDays(0).ToString("MM.yyyy")

如果您只需要获取当前日期,则无需调用AddDays方法。你可以简单一试,

(Get-Date).ToString("MM.yyyy")

- 根据OP澄清编辑 -

从上下文看,您希望将$_.StartDate转换为 MM.yyyy 格式。如果是这种情况(假设您在$ _。StartDate中有一个有效的日期时间值),您可以在其上使用Get-Date方法。像,

Where-Object {(Get-Date($_.StartDate)).ToString("MM.yyyy") -eq (Get-Date).ToString("MM.yyyy") }