LastWriteTime 未排序为 DateTime
LastWriteTime is not sorting as a DateTime
我需要遍历一个目录,并删除除最新的 10 个文件夹之外的所有文件夹。跳过一堆问题后,我得到了这个
$folder = "C:\Projects\BuildDeleteTest"
$keep = 10
$folders = Get-ChildItem $folder
#echo $folders
#echo $folders.Count
echo $folders | Sort-Object -Property $_.LastWriteTime.DateTime | Select-Object -First (20)
而且我可以删除所有项目,然后删除文件夹。但是,LastWriteDateTime 实际上并没有按 DateTime 排序,因为我的文件夹列表是
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 12/21/2018 10:01 AM 01 - Copy (12)
d----- 12/21/2018 10:01 AM 01 - Copy (13)
d----- 12/21/2018 10:02 AM 01 - Copy (14)
d----- 12/21/2018 10:02 AM 01 - Copy (15)
d----- 12/21/2018 9:35 AM 01 - Copy (16)
d----- 12/21/2018 10:01 AM 01 - Copy (17)
d----- 12/21/2018 10:06 AM 01 - Copy (17) - Copy
d----- 12/21/2018 10:03 AM 01 - Copy (2)
d----- 12/21/2018 10:04 AM 01 - Copy (2) - Copy
d----- 12/21/2018 10:03 AM 01 - Copy (3)
d----- 12/21/2018 10:04 AM 01 - Copy (3) - Copy
显然,01 - Copy (16)
是最旧的文件,应该 return 在列表的顶部,但它没有。将升序 always returns Copy (12)
排序为第一个,降序 always returns 01 - Copy (3) - Copy
.此外,Copy (16)
之后的所有文件夹显然都乱序了。
如何根据 LastWriteTime 获取正确排序的文件夹数组?
您应该只指定 属性 的名称作为 Sort-Object
的参数。也就是说,写 Sort-Object LastWriteTime
而不是 Sort-Object $_.LastWriteTime
.
我需要遍历一个目录,并删除除最新的 10 个文件夹之外的所有文件夹。跳过一堆问题后,我得到了这个
$folder = "C:\Projects\BuildDeleteTest"
$keep = 10
$folders = Get-ChildItem $folder
#echo $folders
#echo $folders.Count
echo $folders | Sort-Object -Property $_.LastWriteTime.DateTime | Select-Object -First (20)
而且我可以删除所有项目,然后删除文件夹。但是,LastWriteDateTime 实际上并没有按 DateTime 排序,因为我的文件夹列表是
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 12/21/2018 10:01 AM 01 - Copy (12)
d----- 12/21/2018 10:01 AM 01 - Copy (13)
d----- 12/21/2018 10:02 AM 01 - Copy (14)
d----- 12/21/2018 10:02 AM 01 - Copy (15)
d----- 12/21/2018 9:35 AM 01 - Copy (16)
d----- 12/21/2018 10:01 AM 01 - Copy (17)
d----- 12/21/2018 10:06 AM 01 - Copy (17) - Copy
d----- 12/21/2018 10:03 AM 01 - Copy (2)
d----- 12/21/2018 10:04 AM 01 - Copy (2) - Copy
d----- 12/21/2018 10:03 AM 01 - Copy (3)
d----- 12/21/2018 10:04 AM 01 - Copy (3) - Copy
显然,01 - Copy (16)
是最旧的文件,应该 return 在列表的顶部,但它没有。将升序 always returns Copy (12)
排序为第一个,降序 always returns 01 - Copy (3) - Copy
.此外,Copy (16)
之后的所有文件夹显然都乱序了。
如何根据 LastWriteTime 获取正确排序的文件夹数组?
您应该只指定 属性 的名称作为 Sort-Object
的参数。也就是说,写 Sort-Object LastWriteTime
而不是 Sort-Object $_.LastWriteTime
.