以可视化的方式使用命令行工具.
项目产生原因是: 我写了个命令行工具给别人用, 但是别人连终端都不知道怎么开, 也懒得手敲命令; 正好我自己平时也用 ffmpeg 做一些简单的视频截取, 压缩. 因此, 构思了这个能同时解决这两个问题的项目.
只要写好配置, 能够让不懂命令行的人, 或者觉得一个一个输参数很麻烦的人, 都能在可视化界面上, 轻松使用命令行工具.
这个项目也是我自己学习 rust 的第一个实践.
从 Release 页面下载可执行文件(目前只编译了 Windows 版本), 将其与配置文件放到同一个目录下. 双击use-cli-like-gui.exe
即可运行.
参照 rust 的安装和编译项目方法.
总之就是安装好 cargo, 在项目目录下运行cargo build --release
, 编译完成后, 找到target/release
目录下的可执行文件use-cli-like-gui.exe
, 将其与配置文件放到同一个目录下. 双击use-cli-like-gui.exe
即可运行.
项目使用 toml 格式的配置文件. 可以直接取项目中的示例配置文件来使用, 也可以参照这些配置文件自行编写.
文件结构非常清晰. 惟一需要注意的是, 请保持文件名与可执行程序同名. 程序更新配置文件时会按照可执行程序生成新文件.
对于选项(Option)和参数(Argument)的解析:
- 无等号结尾的选项, 选项和参数将作为两个部分分别传入. 例如
funcs.opt = "-i"
funcs.arg = "input.mp4"
# => -i input.mp4
funcs.opt = "-ss"
funcs.arg = "00:00:00"
# => -ss 00:00:00
funcs.opt = "--no-ff"
funcs.arg = "develop"
# => --no-ff develop
- 以等号结尾的选项, 如果是单横开头, 则直接连接参数作为一个选项传入; 如果是双横开头, 则用等号连接参数作为一个选项传入. 例如:
funcs.opt = "-l="
funcs.arg = "curl"
# => -lcurl
funcs.opt = "--split="
funcs.arg = "EN_content.txt"
# => --split=EN_content.txt
- 选项或参数为空时, 将会跳过并尝试将另外一部分作为一个选项传入(等于号将被忽略). 例如:
funcs.opt = ""
funcs.arg = "input.mp4"
# => input.mp4
funcs.opt = "-ss"
funcs.arg = ""
# => -ss
funcs.opt = "--no-ff"
funcs.arg = ""
# => --no-ff
funcs.opt = ""
funcs.arg = "curl"
# => curl
funcs.opt = "--split="
funcs.arg = ""
# => --split
在打开程序之前准备好配置文件, 双击运行之后, 从右上角选择想要用到的命令行工具, 然后依次选择功能, 要使用的参数, 然后填入必要的参数值, 最后点击 Start 按钮开始执行. 执行结果会显示在同步打开的终端中.
- 输入内容的保存时机为: 切换配置文件时; 按下 Start 按钮时. 目前直接关闭程序不会保存输入内容.
- 组合的命令会提前显示在 Start 按钮右侧, 你可以自行在终端中输入这些命令来运行. 效果一样.
- 乱写的 toml 文件不会导致崩溃, 反过来说, toml 文件无法加载说明文件格式可能哪里有误.