如何在 PowerShell 中按日期确定最新文件夹?

如何在 PowerShell 中按日期确定最新文件夹?

我有一个包含最近 5 天备份的目录列表。如何才能仅处理以下最新目录 (06-01)?

\\ds418\Backups\Emby\Emby Backup - 2020-06-01 02.0.0 - Auto
\\ds418\Backups\Emby\Emby Backup - 2020-05-31 02.0.0 - Auto
\\ds418\Backups\Emby\Emby Backup - 2020-05-30 02.0.0 - Auto
\\ds418\Backups\Emby\Emby Backup - 2020-05-29 02.0.0 - Auto
\\ds418\Backups\Emby\Emby Backup - 2020-05-28 02.0.0 - Auto

答案1

这对我有用,$NewDir将包含最新的目录。

$PlaylistPath = Get-ChildItem -Directory -Path "$EmbyBackupDir" -Filter "Emby Backup*" | Sort-Object


foreach ($PLP in $PlaylistPath) {
   $NewDir = $PLP
}

答案2

* 所有命令均从 \\ds418\Backups\Emby\ 执行 *

如果目录命名和您的示例一样简单,那么按字母顺序排列时,最近的日期将始终排在最后。由于这是 Get-ChildItem 的默认排序顺序,因此以下内容就足够了:

( Get-ChildItem -Directory )[-1].FullName

或者

(gci -dir)[-1].FullName

如果您确实需要查找并解析目录名称中的日期,这里有一种方法:

gci -dir | select FullName, @{ N = 'FolderDate' ; E = {
    If ( $_.Name -match '\d{4}-\d{2}-\d{2}' ) {
       [DateTime]$matches[0]
    }  
 }} | sort FolderDate | select -expand FullName -last 1 

相关内容