项目开源:https://gitee.com/talonshaw/ScriptBox

一、功能及使用

为项目重复性工作提供一键操作的可能,并以工作台形式归集这些操作。

界面如下,左边栏为一键操作按钮,右边栏为信息输出:

软件逻辑

ScriptBox软件配合ScriptBox项目使用,ScriptBox项目文件为自定义的sbprj格式,内容是json格式文本。

选择菜单栏--打开

​​​​

打开后便可点击左边按钮图标执行相应动作,比如点击“hello”按钮,效果如上图右侧输出信息。

​​

二、如何新建一个ScriptBox项目

新建项目步骤如下:

  1. 创建一个文件夹,用于存放项目;

  2. 点击菜单栏--新建项目,选择上面创建的文件夹,填写项目名然后点保存即可;
    ​​

  3. 默认生成一个测试按钮:
    ​​​​​​

上面新建的test项目代码如下:

{
  "projectName": "test",
  "workDir": "./",
  "buttonGroups": [
    {
      "groupName": "通用工具",
      "buttons": [
        {
          "title": "hello",
          "imgPath": "default",
          "scriptType": "cmd",
          "scriptContent": "echo Hello World!"
        }
      ]
    }
  ]
}

ScriptBox项目文件的框架是固定的,可以根据需要增加buttonGroups及其中的buttons,每个button对应一个操作。

点击菜单栏--项目--编辑可打开项目文件编辑,参考下述ScriptBox项目文件参数详解,手动添加项目所需的按钮。

ScriptBox项目文件参数详解

一般参数

参数

说明

备注

projectName

项目名

workDir

项目工作文件夹

应填写svn根文件夹相对于ScriptBox项目文件夹的相对路径,一般将ScriptBox项目文件放在branches的scripts文件夹下,则工作文件夹应该为"../../"​​​​。
"./"​​​​表示工作路径即为ScriptBox项目文件夹。

buttonGroups

按钮组

这是一个数组,可以包含多个按钮组

groupName

按钮组命名

buttons

按钮

这是一个数组,可以包含多个按钮

按钮参数

参数

说明

备注

title

按钮文本

必须项

imgPath

按钮图标

可选,填写相对于项目目录的相对路径,不填则为脚本类型默认的图标

scriptType

按钮脚本类型

必须项,目前支持:
file:打开文件
dir:打开文件夹
cmd:执行一句cmd命令
bat:bat脚本,弹出命令窗口执行。对于有交互的bat脚本,选择这种类型
simpleBat:简单的bat脚本,不弹出命令窗口,直接输出信息
python:python脚本
exe:可执行文件

scriptContent

脚本内容

命令类型为cmd时,scriptContent为命令内容,否则为脚本路径;
当为脚本路径时,可以填相对于ScriptBox目录的相对路径,也可填写,相对于项目工作路径的相对路径。

scriptParameter

脚本参数

可选,对于bat、python脚本及exe可执行文件,可以有参数

注意:

  1. 项目文件中的所有路径必须使用'/'​​​​​,而不能使用'\'​​​​​。

  2. 项目文件必须符合JSON格式,如果打开出错,检查","​​​​​、"{}"​​​​​、"[]"​​​​​是否有错。

  3. 运行python脚本需要先安装python,推荐应用商店安装python3.9,或官网下载:https://www.python.org/ftp/python/3.9.0/python-3.9.0-amd64.exe。

  4. 通过cmd调用beyond compare等工具时,需要将软件路径先添加到环境变量。

三、按钮配置示例

1. 打开文件

{
    "title": "eep_xlsm",
    "imgPath": "icon/excel.png",
    "scriptType": "file",
    "scriptContent": "trunk/M7_Dual/M7/src/Source/HWA_Interface/hwa_eep/EEP Layout.xlsm",
}

2. 打开文件夹

{
    "title": "openhex",
    "scriptType": "dir",
    "scriptContent": "trunk/M7_Dual/HexMerge"
}

3. 执行cmd命令

简单输出

{
    "title": "hello",
    "scriptType": "cmd",
    "scriptContent": "echo Hello World!",
}

SVN命令

{
    "title": "showlog",
    "imgPath": "icon/log.png",
    "scriptType": "cmd",
    "scriptContent": "TortoiseProc /command:log /path:branches/EP40_Model"
}

比较工具命令

{
    "title": "compare",
    "imgPath": "icon/compare.png",
    "scriptType": "cmd",
    "scriptContent": "BCompare trunk/NeuSAR/M7_0/Codes/Components trunk/M7_Dual/M7/src/Components"
}

4. 执行脚本

bat脚本

{
    "title": "unlock",
    "scriptType": "bat",
    "scriptContent": "bat/Cypress_Unlock_1.0-4BF.bat",
}

python脚本

{
    "title": "version",
    "scriptType": "python",
    "scriptContent": "python/update_sys_config_h.py",
    "scriptParameter": "trunk/M7_Dual/M7/src/Source/System/sys_config.h"
}

exe可执行文件

{
    "title": "IAR_Aux",
    "scriptType": "exe",
    "scriptContent": "trunk/M7_Dual/M7/IAR Project Auxiliary V1.5.exe",
}