具有LastWriteTime的gci不会返回正确的文件对象

时间:2016-09-16 09:22:04

标签: powershell

我在文件夹中有一个文件,其中包含以下LastWriteTime ------------- 08.09.2016 07:46:18 属性:

gci . | ? {$_.LastWriteTime -like '*08.09.2016*'}

gci . | ? {$_.LastWriteTime -eq '08.09.2016'}

gci . | ? {$_.LastWriteTime -eq '08.09.2016 07:46:18'}

为什么这些命令中没有任何一个返回File对象?

LastWriteTime

我的任务是将所有在08.09.2016上创建的文件递归地放在一个文件夹中,我知道如何做到这一点,但我的{{1}}比较不想工作。为什么呢?

1 个答案:

答案 0 :(得分:2)

您的问题是$_.LastWriteTime属于DateTime类型,您将其与字符串进行比较。您需要自己创建DateTime对象,例如:

[datetime]::ParseExact("31/12/1900", "dd/MM/yyyy", $null)

您也可以将$_.LastWriteTime转换为字符串,例如:

$_.LastWriteTime.ToShortTimeString()

但请记住,在具有不同文化设置的计算机上,结果会有所不同。选项1是要走的路。完整示例如下所示:

gci . | ? {$_.LastWriteTime.Date -eq [datetime]::ParseExact("08/09/2016", "dd/MM/yyyy", $null)}