Powershell获取目录中最新的ChildItem文件

Powershell获取目录中最新的ChildItem文件,powershell,Powershell,我们制作名称中带有日期的文件。 (*下面是日期的通配符) 我想抓取最后一个文件,包含该文件的文件夹的标题中也有一个日期(仅限月份) 我正在使用PowerShell,并计划每天运行它。以下是迄今为止的脚本: $LastFile = *_DailyFile $compareDate = (Get-Date).AddDays(-1) $LastFileCaptured = Get-ChildItem -Recurse | Where-Object {$LastFile.LastWriteT

我们制作名称中带有日期的文件。 (*下面是日期的通配符) 我想抓取最后一个文件,包含该文件的文件夹的标题中也有一个日期(仅限月份)

我正在使用PowerShell,并计划每天运行它。以下是迄今为止的脚本:

  $LastFile = *_DailyFile
  $compareDate = (Get-Date).AddDays(-1)
  $LastFileCaptured = Get-ChildItem -Recurse | Where-Object {$LastFile.LastWriteTime        
         -ge $compareDate}

如果您想要目录中的最新文件,并且仅使用
LastWriteTime
确定最新文件,可以执行以下操作:

gci path | sort LastWriteTime | select -last 1
另一方面,如果您只想依赖于其中包含日期的名称,那么您应该能够使用类似的名称

gci path | select -last 1

此外,如果目录中有目录,您可能需要添加一个
?{-not$\p.psicContainer}

您可以尝试按降序排序“sort LastWriteTime-descending”然后“select-first 1”。不确定哪一个更快

是的,我认为这会更快

Get-ChildItem $folder | Sort-Object -Descending -Property LastWriteTime -Top 1 
尝试: 说明:
  • Get ChildItem-属性!目录*.txt
    获取子项
    gci
    :仅获取当前目录中的文件列表。我们也可以根据需要提供文件扩展名筛选器,如
    *.txt
    。参考文献:
  • 排序对象-降序-属性LastWriteTime
    :按LastWriteTime(修改时间)降序排序文件
  • select-First 1
    :获取第一条/顶部记录。参考文献
获取文件元数据
@user977645请记住接受此答案,单击向上/向下投票箭头下方左侧的v符号。互联网上有传言称“LastAccessTime”适用于此。这是一个谎言。您的解决方案是正确的。对于第一个文件:| sort LastWriteTime | select-first 1 Forge me snowcode,如果我误解了您的帖子,但我相信您是错误的。最新的文件由最后一个1接收,而不是第一个1。我自己测试了这个,我的文件和今天一样新,2019年一样旧。当我使用-last 1运行上述代码时,我确实得到了今天的文件。当我将其更改为-first 1时,我会得到最旧的文件,即2019年的文件。
-file
如果您只需要文件。我喜欢按降序排序,然后获取第一个结果。这取决于它在幕后的工作方式,在一个大目录上可能会更快。但您需要使用管道进行选择。此外,Top无效
Get ChildItem$folder | Sort Object-Descending-Property LastWriteTime | Select-First 1
Yeah my bad,-Top仅在PowerShell 6中引入
$latest = (Get-ChildItem -Attributes !Directory | Sort-Object -Descending -Property LastWriteTime | select -First 1)
$latest_filename = $latest.Name 
PS C:\Temp> Get-ChildItem -Attributes !Directory *.txt | Sort-Object -Descending -Property LastWriteTime | select -First 1


    Directory: C:\Temp


Mode                LastWriteTime         Length Name                                                                                
----                -------------         ------ ----                                                                                
-a----         5/7/2021   5:51 PM           1802 Prison_Mike_autobiography.txt                    
PS C:\Temp> $latest.Name
Prison_Mike_autobiography.txt

PS C:\Temp> $latest.DirectoryName
C:\Temp

PS C:\Temp> $latest.FullName
C:\Temp\Prison_Mike_autobiography.txt

PS C:\Temp> $latest.CreationTime
Friday, May 7, 2021 5:51:19 PM


PS C:\Temp> $latest.Mode
-a----