我有一个包含最近 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