From fcf83ecb74c25da1f20423f3e929f4248d9ca31b Mon Sep 17 00:00:00 2001 From: Shuery <2463253700@qq.com> Date: Sun, 27 Sep 2026 10:27:44 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20Restore.ps1=20=E7=9A=84=E6=9D=A1?= =?UTF-8?q?=E7=9B=AE=E7=AD=9B=E9=80=89=E6=94=B9=E7=94=A8=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=88=E5=8E=BB=E6=8E=89=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E4=BB=BD=E5=89=AF=E6=9C=AC=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test-EntrySelected 与上一个提交搬进模块的 Test-BakNRetItemSelected 是同一段逻辑:我在删之前先逐行比对过(把 $Only/$Skip 归一化后两边 7 行逻辑完全相等),确认是重复才删。 这是"入口下沉"里少见的零风险一块:不新增代码,只是让两份实现变成一份。Restore.ps1 从 884 行降到 870 行。 验收:test.ps1 9/9 全绿(7 与 5.1)、无解析错误、真实清单只读冒烟 4/4。 --- Restore.ps1 | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/Restore.ps1 b/Restore.ps1 index 660cd90..924e020 100644 --- a/Restore.ps1 +++ b/Restore.ps1 @@ -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') { # 仅备份的条目照样要登记归档名:审计要能看出"这个归档是有主的",