【发布时间】:2016-01-21 22:29:39
【问题描述】:
在我的文件夹 testtemp 中,我有这些文件
PS C:\scripts\testtemp> Get-ChildItem | select name,lastwritetime
Name LastWriteTime
---- -------------
AABASSI.TMC049913.mapdrives.txt 27/02/2015 11:01:11
AABASSI.TMC049916.mapdrives.txt 02/03/2015 14:29:31
AABASSI.TMC050020.mapdrives.txt 26/11/2014 18:08:48
aabassi.TMS064845.mapdrives.txt 06/03/2015 14:14:50
aaboud.DLECLERCQPC.mapdrives.txt 03/04/2015 09:02:03
aaboud.FHP030221.mapdrives.txt 30/12/2014 15:05:04
aaboud.FHP045846.mapdrives.txt 18/11/2014 10:15:05
Aaccus.FHP047416.mapdrives.txt 25/07/2014 08:16:19
AADRIENVASSE.PHP049659.mapdrives.txt 02/10/2015 14:18:15
AADRIENVASSE.RBXXAMET10.mapdrives.txt 06/08/2015 10:33:33
aagostini.FHP047082.mapdrives.txt 05/03/2015 13:38:07
aagricole.PHP053341.mapdrives.txt 30/03/2015 15:09:03
aagricole.TMS064745.mapdrives.txt 25/03/2015 12:32:06
aaiad.PHP053346.mapdrives.txt 09/06/2015 09:18:58
aaissaoui.FHP029908.mapdrives.txt 28/08/2014 14:41:09
aaissaoui.FHP030685.mapdrives.txt 15/11/2014 18:27:55
aaissaoui.FHP048791.mapdrives.txt 12/09/2014 10:22:19
aaissaoui.FHP048963.mapdrives.txt 06/11/2014 09:55:00
我只想获取每次登录的最新文件(例如 AABASSi 是登录)
如果我尝试 sort-object lastwritetime -descending 和 sort-object -property name -unique,就会出现问题,因为例如 AAISSAOUI 28/08/2014 14:41:09 不是最新文件:
Get-ChildItem | select @{l="name";e={($_.name.split(".")[0]).ToUpper()}},lastwritetime | Sort-Object lastwritetime -Descending | Sort-Object -Property name -Unique
name LastWriteTime
---- -------------
AABASSI 26/11/2014 18:08:48
AABOUD 30/12/2014 15:05:04
AACCUS 25/07/2014 08:16:19
AADRIENVASSE 02/10/2015 14:18:15
AAGOSTINI 05/03/2015 13:38:07
AAGRICOLE 25/03/2015 12:32:06
AAIAD 09/06/2015 09:18:58
AAISSAOUI 28/08/2014 14:41:09
我的问题有简单的解决方案吗?
【问题讨论】:
-
dir|group{$_.name.split(".")[0]}|%{$_.group|sort lastwritetime -Descending|select -first 1} -
简单高效!非常感谢!
标签: powershell