2016-12-14 93 views
1

我在Windows中有一个类似文件名的文件目录,修改日期是英国日期格式dd/mm/yyyy,我所需要做的就是选择“-last 1“,基于ddmm。在这种情况下,它是Windows Date修改日期为“07/12/16”或“2016年12月7日”的文件。在同一目录中还有另一个文件,英国日期为“01/12/16”或“2016年12月1日”以供参考。还有很多其他文件。按美国/英国排序/重新排列文件LastWriteTime

但是,在目录上运行gci "<path>" | Select -last 1时,它将返回“12/01/16”而不是“12/07/16”,因此它假设日期的第一部分是美国(毫米),并按那。选择-first 1没有帮助,因为这将在八月份选择最早的文件,“16/08/2016”被解释为“16/08/16”。

我该如何操作LastWriteTime以我想要的格式读出?我曾尝试

gci "\\my-Path\.csv" | Select Name, {$_.LastWriteTime.ToString("dd/mm/yyyy")} 

但这带回一些奇怪的(“07/38/2016”)

+1

'mm'是分钟,'MM'是几个月。请参阅[文档](https://msdn.microsoft.com/en-us/library/8kb3ddd4(v = vs.110).aspx)。此外,'Get-ChildItem' [似乎没有](http://stackoverflow.com/a/40619704)任何特定的排序顺序,因此需要显式排序。 – vonPryz

回答

0

你可能只是想Get-ChildItem结果使用LastWriteTime属性Sort-Object的cmdlet:

Get-ChildItem "\\my-Path\.csv" | Sort-Object LastWriteTime | Select-Object -first 1