projects / CmdMan.md public repo

CmdMan

自定义命令管理器

JavaScript
owner demonerdpity
language JavaScript
topics 01
reader / README.md markdown render

CmdMan (Electron)

一个用于 Windows 的“自定义命令管理器”原型:在 UI 里配置命令与对应操作,然后一键同步到系统,确保在 PowerShell / CMD 中都能直接使用。

功能

  • 命令 → 操作(Action)模型:exec / open / shellScript / sequence
  • 一键同步到系统:
    • 写入 runner.ps1
    • 生成每个命令对应的 .cmd wrapper(CMD/PowerShell 都可调用)
    • 把 bin 目录加入 用户级 PATH
  • 内置占位符(用于把命令行参数映射到 action 参数):{{1}}{{args}}{{cwd}}{{env.NAME}}
  • 简单的中/英文 UI(可扩展更多语言)

开发运行

npm install
npm start

使用流程

  1. 点击“新建”,填写:
    • 命令名(例如 gco
    • 操作类型(例如 运行程序
    • 程序与参数(例如 git + checkout + {{1}}
  2. 点击“保存”
  3. 点击“同步到系统”
  4. 重新打开一个终端(新的 PowerShell/CMD 才会读取更新后的 PATH)
  5. 直接执行:gco main

配置与同步产物位置

同步后会写到:

  • 数据目录:%LOCALAPPDATA%\\CmdMan\\
  • 配置文件:%LOCALAPPDATA%\\CmdMan\\commands.json
  • runner:%LOCALAPPDATA%\\CmdMan\\runner.ps1
  • wrapper 目录:%LOCALAPPDATA%\\CmdMan\\bin\\*.cmd

Action 说明

1) exec(运行程序)

示例:

{
  "type": "exec",
  "program": "git",
  "args": ["checkout", "{{1}}"],
  "cwd": "{{cwd}}",
  "env": {
    "FOO": "bar"
  }
}

2) open(打开路径/URL)

{ "type": "open", "target": "https://example.com" }

3) shellScript(运行脚本)

{ "type": "shellScript", "shell": "powershell", "script": "Write-Host {{1}}" }

4) sequence(串联执行)

{
  "type": "sequence",
  "steps": [
    { "type": "exec", "program": "git", "args": ["pull"] },
    { "type": "exec", "program": "npm", "args": ["run", "dev"] }
  ]
}

占位符(模板变量)

  • {{1}} / {{2}}:第 1 / 2 个参数
  • {{args}}:所有参数拼成的字符串(在 args 列表中若“整项”写成 {{args}} 会展开为多个参数)
  • {{cwd}}:执行该命令时的当前目录
  • {{env.NAME}}:读取环境变量

已知限制

  • 目前“同步到系统”仅实现了 Windows(通过 .cmd + runner.ps1 + 用户 PATH)
  • sequence 的编辑 UI 目前为 JSON(更友好的一步步编辑器可以后续再做)