Files
BakNRet/BackupList.txt
T
Shuery 045d51ac9c 引入软件名录:清单写软件名,归档名也用软件名
新功能
- 新增 SoftwareCatalog.psd1 —— "软件名 -> 目录"映射表,BackupList.txt 里
  直接写软件名即可,归档名也就是软件名(FooClolor.7z),
  不再是 FooClolor_from_C_+Programs.7z 这种由路径拼出来的名字。
- 三种写法可混用:软件名、字面路径(现有清单无需改写)、软件名 @pathname。
- 名录支持前缀补全(legendary -> legendary_2.0.4,只认 <名>_* / <名>-*)、
  Variants(同名目录在多处)、Includes(分文件维护)。
- tools/Rename-Archives.ps1:存量归档重命名,默认试运行,逐份大小校验并重建 manifest。
- 归档名重复直接报错,不再静默互相覆盖。

两套测试全绿:单元 42 项、端到端 23 项(新增名录命名/解析/迁移用例)。

过程中修掉的缺陷
- Resolve-BackupEntry 里 @pathname 与 Unresolved 分支顺序错误,
  @pathname 会被静默吃掉(改名后仍用软件名)。
- 源目录被删除时解析器丢掉 Sources,导致恢复端把软件名当路径、
  报 "Cannot bind argument to parameter 'Path' because it is an empty string"。
  恢复的语义恰恰是"源不存在就要还原回去",现在 Sources 照旧给出。
- 源存在性检查曾被漏掉,Get-Item 对不存在路径抛异常会中断整轮备份;
  且不能用 Join-Path 探测——目标盘符不存在时它会直接抛异常。
- 计划任务脚本外的 Caller 需要 -DryRun 才能验,已实跑确认。
2026-09-21 20:55:19 +08:00

77 lines
3.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BackupList.txt —— 备份 / 恢复共用清单
#
# 语法:
# <软件名 或 路径> [ :: <排除模式>[,<排除模式>...] ] [ @<标记> ]
#
# 三种写法都可以,混用也没问题:
#
# 1. 软件名(推荐)—— 去 SoftwareCatalog.psd1 里查目录,归档名就是软件名
# FooClolor
# Kazumi :: !*Cache
#
# 2. 字面路径 —— 含 `\`、`/` 或 `%` 就按路径处理,归档名沿用 <名>_from_<路径>
# %UserProfile%\Documents\PowerShell
# C:\Programs\MiFlash
#
# 3. 软件名 + @pathname —— 强制用旧的路径命名算法
# FooClolor @pathname
#
# 排除模式:相对归档根目录。以 ! 开头表示"任意层级下匹配这个组件名"(7z 的 -xr!)。
# 不要自己写引号;模式里的空格会被自动转成 ?(7z 的模式不支持空格)。
# 标记:
# encrypt 用 7z 加密该归档(口令来自 BAKNRET_PASSWORD 或 -KeyFile)
# pathname 用路径命名算法而不是软件名
# root=<名> 覆盖归档内的根目录名(默认就是软件名)
#
# 归档名 = 软件名,所以:**同一个软件不要写两遍**,脚本会直接报重复错误。
# 软件名(连同排除规则、加密标记)都维护在 SoftwareCatalog.psd1 和本文件里,
# 两边都进 git,改动可追溯。
# ---- 用户配置 / 开发环境 ----
legendary
opencode
scoop-config
# .ssh 里是私钥。想加密就把下面那行 @encrypt 的注释互换(见 README「加密」)
.ssh
CodeSpace :: Shuery-Shuai\ImmortalWrt-BPI-R4-Firmware\immortalwrt\
PowerShell
WindowsPowerShell
scoop-persist
# ---- 应用数据 ----
AutoDarkMode
Kazumi
piliplus
fnm
twinkle-tray
# ---- 浏览器:排除可再生的缓存、遥测与扩展本体 ----
# 解压后 4.22 GB / 25030 个文件里,下面这组排除会留下约 431 MB / 2164 个文件,
# 排除掉的 3.79 GB 全部可以重新生成:缓存、组件缓存、Service Worker、
# 扩展本体(可从商店重装)、遥测与优化数据。
# 书签/密码/偏好/历史,以及站点数据(IndexedDB / Local Storage)都保留。
# 想再省 230 MB,可以把 Default\IndexedDB、Default\Local Storage、
# Default\Session Storage、Default\blob_storage、Default\WebStorage 也加进来。
# !*Cache 一次覆盖 Cache / Code Cache / GPUCache / DawnCache / GrShaderCache 等一批。
#
# 注意:Edge 常驻时打包会有上百个文件读不到(含 Login Data / Cookies),
# 脚本检测到警告后不会用这份不完整的归档覆盖已有的完整归档。备份前建议先退出 Edge。
Edge :: !*Cache,component_crx_cache,Default\Service Worker,Default\Extensions,Default\ExtensionActivityEdge,ProvenanceData,optimization_guide,Crashpad,BrowserMetrics,Snapshots,Edge Sidebar,Edge Shopping
WindowsTerminal
# ---- 系统 ----
Startup
# ---- C:\Programs ----
BaiduNetdisk
FooClolor
March7thAssistant :: 3rdparty\WebBrowser\UserProfile\Integrated,March7thAssistant\logs\
MiFlash
MiFlash_Unlock
QuarkCloudDrive
translucenttb
ScoopApps-persist :: persist\ariang-native\UserData\DawnCache,persist\ariang-native\UserData\GPUCache,persist\ariang-native\UserData\Local Storage,persist\ariang-native\UserData\Session Storage
# ---- 其它盘 ----
Aria