Powershell Get-ChildItem目录中的最新文件

时间:2012-03-12 22:23:13

标签: powershell

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

我正在使用PowerShell,我计划每天运行它。到目前为止,这是脚本:

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

4 个答案:

答案 0 :(得分:127)

如果您想要目录中的最新文件而您只使用LastWriteTime来确定最新文件,则可以执行以下操作:

gci path | sort LastWriteTime | select -last 1

另一方面,如果你只想依赖其中包含日期的名字,你应该可以有类似的东西

gci path | select -last 1

此外,如果目录中有目录,您可能需要添加?{-not $_.PsIsContainer}

答案 1 :(得分:1)

是的,我认为这样会更快。

Get-ChildItem $folder | Sort-Object -Descending -Property LastWriteTime -Top 1 

答案 2 :(得分:0)

您可以尝试按降序对“ LastWriteTime -Descending进行排序”,然后对“ select -first 1”进行排序。不知道哪一个更快

答案 3 :(得分:0)

尝试:

https://www.google.com/ 200 text/html; charset=UTF-8
https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png 200 image/png
https://consent.google.com/status?continue=https://www.google.com&pc=s&timestamp=1531511954&gl=GB 204 text/html; charset=utf-8
https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png 200 image/png
https://ssl.gstatic.com/gb/images/i2_2ec824b0.png 200 image/png
https://www.google.com/gen_204?s=webaft&t=aft&atyp=csi&ei=kgRJW7DBONKTlwTK77wQ&rt=wsrt.366,aft.58,prt.58 204 text/html; charset=UTF-8
...

说明:

$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 Get-ChildItem -Attributes !Directory *.txtGet-ChildItem :仅获取当前目录中的文件列表。我们也可以根据需要提供文件扩展名过滤器,例如 gci。参考:gciGet-ChildItem
  • *.txt :按 LastWriteTime(修改时间)降序对文件进行排序。 Reference
  • Sort-Object -Descending -Property LastWriteTime :获取第一个/最高记录。参考Select-Object / select

获取文件元数据

select -First 1