【发布时间】:2019-10-04 16:32:45
【问题描述】:
我有一个文件夹,里面装满了来自不同数据库的 SQL 备份。我需要从每个数据库中分离出最后修改的内容并删除其余部分。
我可以找到所有最后修改的并删除其余部分,但这会删除其他 2 个数据库中的最后一个备份。
$files = Get-ChildItem -Path $path -Recurse |
Where-Object {-not $_.PsIsContainer}
$keep = 1
if ($files.Count -gt $keep) {
$files | Sort-Object CreationTime |
Select-Object -First ($files.Count - $keep) |
Remove-Item -Force
}
这只会保留最新的并删除其余的。
如果我有
db1.bak db1.bak db1.bak db2.bak db2.bak db2.bak db3.bak db3.bak db3.bak如何保留每个最后修改的然后删除其余的?
【问题讨论】:
-
Gci -filter db1 。或者一个 hashset @{} 并添加一个 try catch。
标签: powershell