###########
# BackupList.txt —— 备份清单
###########
#
# 语法：
#   [+|-] <目标> [修饰符...] [# 说明]
#
# 标记：
#   +    仅备份，不恢复。
#   -    仅恢复，不备份。
#
# 目标（二选一）：
#   <SoftwareName>    软件名。查 SoftwareCatalog.psd1，归档名 = 软件名。
#   <Absolute\Path>   绝对路径。含 `\`、`/` 或 `%` 时按路径处理。
#
# 修饰符（可多个，前后必须有空格）：
#   :: <Absolute\Path>     覆盖 Path。同 `@ Path='<Absolute\Path>'`。
#                          同一行中，:- / :+ 的模式相对覆盖后的 Path。
#   :- <模式>[,...]        排除。同 `@ Exclude='<模式>'`。
#   :+ <模式>[,...]        追加。同 `@ Include='<模式>'`。
#                          模式为两段式：<归档内相对路径>:<宿主机绝对路径>。
#   :encrypt               加密。同 `@ Encrypt='$true'`。
#   :!encrypt              不加密。同 `@ Encrypt='$false'`。
#   @ <Key>='<Value>'      覆盖 SoftwareCatalog 中的默认字段。
#
# 说明：
#   行尾 `# 说明` 会在运行时与目录介绍一起打印。
#   归档名 = 软件名，同一软件不要写两遍。
#
# ---------------------------------------------------------------- #
# 模式（Pattern）
# ---------------------------------------------------------------- #
#
# 「模式」是传给 7z 的排除 / 包含匹配式，匹配的是**归档内的相对路径**，
# 不是宿主机上的绝对路径。
#
#   例：Edge 的 Path 是 `%LocalAppData%\Microsoft\Edge\User Data`，
#       归档根就是 `User Data\` 内部的内容。
#       模式 `Default\Extensions` 匹配的是归档内的
#       `Default\Extensions\...`，
#       而不是宿主机上的 `C:\Users\...\Edge\User Data\Default\Extensions\...`。
#
# 两种形态：
#
#   <模式>     锚定在归档根。展开为 7z 的 `-x!<Path 的目录名>\<模式>`。
#              只匹配根下这一份。
#
#   !<模式>    任意层级。展开为 7z 的 `-xr!<模式>`。
#              只要路径中任意一段命中，就排除。
#
#   多数情况应使用 `!` 形式：根锚定常常够不着嵌套层级里的目标。
#   例：Edge 的 `OneAuth\WebView2\EBWebView\` 里还有一整套
#       Crashpad / BrowserMetrics / ProvenanceData / optimization_guide，
#       根锚定模式碰不到，必须用 `!` 形式按组件名排除。
#
# 通配符（7z 语法，非正则）：
#
#   *    任意多个字符（不含 `\`）。
#   ?    任意单个字符。
#
#   不支持：正则、[] 字符类、{} 花括号扩展。
#
#   `!*Cache` 一次覆盖：Cache / Code Cache / GPUCache / DawnCache /
#                       GrShaderCache 等一批以 Cache 结尾的组件名。
#
# 引号与空格：
#
#   模式里**不要自己写引号**，引号会被当成模式的一部分。
#   模式里的空格会被自动转成 `?`（7z 的 -x! 参数不接受带空格的模式）。
#   例：`Default\Service Worker` 会变成 `Default\Service?Worker`。
#
# 多个模式：
#
#   用 `,` 或 `;` 分隔，等价于给 7z 传多个 -x! / -xr! 参数。
#
# :+ 的两段式：
#
#   <归档内相对路径>:<宿主机绝对路径>
#   把宿主机的目录追加到归档内的指定位置。
#   例：`D:\extra\ps-modules:Modules` → 把 D:\extra\ps-modules
#       追加到归档内 `Modules\` 位置。
#
# ---------------------------------------------------------------- #

# ---- 软件名 ----

+ AutoDarkMode      # 备份文件还在，但目前不再使用
+MicrosoftEdge
+FastNodeManager
+INZONEHub
+Kazumi
+Legendary          @ Exclude='DefaultConfig\tmp'      # 忽略临时文件夹
+Mnemon
+OpenCode
+OpenSSH
+PiliPlus
+PowerShell         @ Encrypt='$false'                 # 目前无敏感文件，无需加密
+PowerToys
Scoop              :- GlobalPersist\steam\steamapps   # 忽略 Steam 安装的软件，可重下载
+Startup
+SteamRomManager
+TranslucentTB
+ TwinkleTray      # 备份文件还在，但目前不再使用
+WindowsPowerShell  :!encrypt                          # 目前无敏感文件，无需加密
+WindowsTerminal

# ---- 自定义目录 ----

+ C:\Programs\BaiduNetdisk
+C:\Programs\FooColor
+C:\Programs\March7thAssistant  :- '3rdparty\WebBrowser\UserProfile\Integrated,March7thAssistant\logs\'  # 内置浏览器的缓存与日志，可再生
+C:\Programs\MiFlash
+C:\Programs\MiFlash_Unlock
+C:\Programs\QuarkCloudDrive
+C:\Programs\ScoopApps\persist  :- 'persist\ariang-native\UserData\DawnCache,persist\ariang-native\UserData\GPUCache,persist\ariang-native\UserData\Local Storage,persist\ariang-native\UserData\Session Storage'  # ariang 的缓存/会话数据，可再生

+D:\UserData\Documents\Aria
- D:\UserData\Documents\CodeSpace  :- 'Shuery-Shuai\ImmortalWrt-BPI-R4-Firmware\immortalwrt'  # 仅在必要时备份
-D:\Workspace  # 仅在必要时备份
