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:
1 parent
bbfece10b6
commit
fcf83ecb74
1 file changed
+1
-15
+1
-15
@@ -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') {
|
||||
# 仅备份的条目照样要登记归档名:审计要能看出"这个归档是有主的",
|
||||
|
||||
Reference in new issue
Block a user