diff --git a/docs/superpowers/specs/2026-07-29-bat-deployment-launchers-design.md b/docs/superpowers/specs/2026-07-29-bat-deployment-launchers-design.md new file mode 100644 index 0000000..ad1e170 --- /dev/null +++ b/docs/superpowers/specs/2026-07-29-bat-deployment-launchers-design.md @@ -0,0 +1,18 @@ +# Windows BAT 部署启动器设计 + +## 目标 + +让 Windows 用户无需在 CMD 中手动输入 PowerShell 命令,可通过双击 BAT 文件完成首次 SSH 配置、服务器初始化和日常发布。 + +## 设计 + +- 在 `E:\workspace\dianshang\deploy\automation` 增加三个 ASCII 文件名的 BAT 文件,避免 CMD 编码导致中文文件名不可用。 +- 每个 BAT 通过 `%~dp0` 定位自身目录,调用系统自带 `powershell.exe` 并使用 `-NoProfile -ExecutionPolicy Bypass -File` 执行对应 PS1。 +- `01_setup_ssh.bat` 调用 `Initialize-SshKey.ps1`;`02_initialize_server.bat` 调用 `deploy.ps1 -InitializeOnly`;`03_deploy.bat` 调用 `deploy.ps1`。 +- BAT 将 PowerShell 退出码原样保留,成功或失败后 `pause`,使用户能看到提示与错误内容。 +- BAT 不接受或保存服务器密码、SSH 私钥内容或数据库密码。 + +## 验证 + +- 使用 `cmd.exe /c` 验证三个 BAT 的语法与路径解析。 +- 确认 BAT 仅调用预期 PS1,且退出码会被返回。