我们生成名称中包含日期的文件。 (*下面是日期的通配符) 我想抓取最后一个文件,包含该文件的文件夹在其标题中也有一个日期(仅限月份)。
我正在使用PowerShell,我计划每天运行它。到目前为止,这是脚本:
$LastFile = *_DailyFile
$compareDate = (Get-Date).AddDays(-1)
$LastFileCaptured = Get-ChildItem -Recurse | Where-Object {$LastFile.LastWriteTime
-ge $compareDate}
答案 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×tamp=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 *.txt
或 Get-ChildItem
:仅获取当前目录中的文件列表。我们也可以根据需要提供文件扩展名过滤器,例如 gci
。参考:gci、Get-ChildItem*.txt
:按 LastWriteTime(修改时间)降序对文件进行排序。 ReferenceSort-Object -Descending -Property LastWriteTime
:获取第一个/最高记录。参考Select-Object / selectselect -First 1