2016-12-14 145 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