refactor: Restore.ps1 的条目筛选改用模块函数(去掉第二份副本)

Test-EntrySelected 与上一个提交搬进模块的 Test-BakNRetItemSelected 是同一段逻辑:我在删之前先逐行比对过(把 $Only/$Skip 归一化后两边 7 行逻辑完全相等),确认是重复才删。

这是"入口下沉"里少见的零风险一块:不新增代码,只是让两份实现变成一份。Restore.ps1 从 884 行降到 870 行。

验收:test.ps1 9/9 全绿(7 与 5.1)、无解析错误、真实清单只读冒烟 4/4。
This commit is contained in:
Shuery committed 2026-09-27 10:27:44 +08:00
1 parent bbfece10b6
commit fcf83ecb74
1 file changed
+1 -15
+1 -15
View File
@@ -500,20 +500,6 @@ if (-not (Test-Path -LiteralPath $BackupListPath)) {
exit 0
}
function Test-EntrySelected {
param([string]$DisplayPath, [string]$BaseName)
if ($Only.Count -gt 0) {
$matched = $false
foreach ($pattern in $Only) {
if ($DisplayPath -like $pattern -or $BaseName -like $pattern) { $matched = $true; break }
}
if (-not $matched) { return $false }
}
foreach ($pattern in $Skip) {
if ($DisplayPath -like $pattern -or $BaseName -like $pattern) { return $false }
}
return $true
}
# ============================================================================
# 主流程
@@ -542,7 +528,7 @@ foreach ($line in $lines) {
$baseName = $resolved.BaseName
if (-not $baseName) { $stats.skipped++; continue }
if (-not (Test-EntrySelected -DisplayPath $displayPath -BaseName $baseName)) { continue }
if (-not (Test-BakNRetItemSelected -DisplayPath $displayPath -BaseName $baseName -Only $Only -Skip $Skip)) { continue }
if ($resolved.Direction -eq 'backup') {
# 仅备份的条目照样要登记归档名:审计要能看出"这个归档是有主的",