diff --git a/BakNRet/Public/Get-BakNRetItemArchiveName.ps1 b/BakNRet/Public/Get-BakNRetItemArchiveName.ps1 index 301de4c..a760948 100644 --- a/BakNRet/Public/Get-BakNRetItemArchiveName.ps1 +++ b/BakNRet/Public/Get-BakNRetItemArchiveName.ps1 @@ -10,7 +10,7 @@ * 条目本来就写的是字面路径(含分隔符或 %变量%)时也用路径命名算法, 这样现有清单不需要改写就能继续工作。 #> - param($Entry, [string]$CatalogPath, [int]$MaxDepth = 5) + param($Entry, [string]$CatalogPath) # @pathname 时用"真实路径"跑路径命名算法。 # 清单里写的可能是软件名,必须先经名录换成真实路径, diff --git a/README.md b/README.md index a0cac1b..7d65f91 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# BakNRet +# BakNRet 把 `BackupList.txt` 里列出的软件 / 目录用 **7-Zip** 打包进 `Backups/`,并且能用 `Restore.ps1` 原样恢复的 Windows 备份工具。 @@ -163,7 +163,6 @@ LogDir = 'logs' SnapshotDir = 'Backups\snapshots' SoftwareCatalog = 'SoftwareCatalog.psd1' - CatalogMaxDepth = 5 # 前缀补全时最多向下找几层 MinFreeSpaceGB = 5 VerifyArchive = $true # 归档后跑 7z t ComputeHash = $false # 是否额外算 SHA256(大归档很慢) diff --git a/docs/agents/domain.md b/docs/agents/domain.md index a0e1c7d..c2b8eef 100644 --- a/docs/agents/domain.md +++ b/docs/agents/domain.md @@ -1,4 +1,4 @@ -# 领域文档 +# 领域文档 探索代码之前,工程技能应当怎么消费本仓库的领域文档。 @@ -21,7 +21,7 @@ ├── CONTEXT.md ← 术语表 / 领域模型(尚不存在,懒创建) ├── docs/adr/ ← 决策记录(尚不存在,懒创建) │ └── 0001-....md -├── Common.psm1 ← 公共模块:日志、清单解析、名录、归档布局、安全描述符 +├── BakNRet\BakNRet.psd1 ← 公共模块:日志、清单解析、名录、归档布局、安全描述符 ├── Backup.ps1 ← 备份入口 ├── Restore.ps1 ← 恢复入口 ├── BackupList.txt ← 唯一「要处理什么」的来源 diff --git a/tools/lab/README.md b/tools/lab/README.md index 3f66f73..d25c372 100644 --- a/tools/lab/README.md +++ b/tools/lab/README.md @@ -132,7 +132,7 @@ gsudo pwsh -NoProfile -File .\tools\lab\Lab.ps1 reset # 秒回 clean-baseli 9. VM 是**未激活**的 Windows:会有水印,个性化受限,功能测试不受影响。 10. **PowerShell Direct 的默认端点是 Windows PowerShell 5.1**(不是 7)。要在 VM 里跑 7 的代码 必须显式 `Start-Process pwsh.exe`(`Lab.ps1` 就是这么做的)。5.1 还读不了仓库里无 BOM 的 - UTF-8 脚本(见下「已知问题」),`Import-Module C:\BakNRet\Common.psm1` 会报一串「缺少右 }」。 + UTF-8 脚本(见下「已知问题」),`Import-Module C:\BakNRet\BakNRet\BakNRet.psd1` 会报一串「缺少右 }」。 ## 已知问题与规避 @@ -180,7 +180,7 @@ Get-Content -LiteralPath out.txt -Encoding UTF8 如果希望产品层面自动发现,可以在「源未更新」的判断里带上「本次解析出的 roots/layouts 是否与 manifest 记录的一致」,不一致就不要跳过。### 仓库里的 PowerShell 文件是「UTF-8 无 BOM」 -`Backup.ps1` / `Common.psm1` 等都没有 BOM(开头字节是 `3C 23 0A` = `<#` + 换行)。 +`Backup.ps1` / `BakNRet\BakNRet.psd1` 等都没有 BOM(开头字节是 `3C 23 0A` = `<#` + 换行)。 PowerShell 7 默认按 UTF-8 读,没问题;**Windows PowerShell 5.1 会把无 BOM 文件按 ANSI(GBK) 读**, 中文注释会被拆出错字节,甚至报「语句块或类型定义中缺少右 }」这类假解析错误。 要么给这些文件加 BOM,要么在文档里明确只支持 PowerShell 7。