Powershell日期时间过滤器未使用正确的ShortDate模式

问题描述 投票:0回答:1

我试图在Get-ChildItem函数上过滤LastWriteTime,但是当我尝试使用英国日期过滤时,它会失败,因为它不是美国格式。

当我运行(Get-Culture).DateTimeFormat.ShortDatePattern时,我会收到dd/MM/yyy这是正确的格式。

但是,当我执行powershell过滤器语句时: -

GCI 'C:\ | ?{$_.LastWriteTime -ge '21/01/2018'}

我收到以下内容: -

Cannot convert value "21/01/2018" to type "System.DateTime". Error: "String was not recognized as a valid DateTime."

但是,如果我将日期更改为01/21/2018,我会收到正确的结果。

我试图使用$_.LastWriteTime.ToString('dd-MM-yyyy') -ge '01[![enter image description here][1]][1]/01/2018',因为它从2017年返回日期而无法正常工作。

PS1 PS2

powershell
1个回答
2
投票

首先将日期字符串转换为日期对象:

$date = get-date '21/01/2018'
gci C:\ | ? {$_.LastWriteTime -ge $date }
© www.soinside.com 2019 - 2024. All rights reserved.