An open API service indexing awesome lists of open source software.

https://github.com/cataerogong/batcher

对于支持命令行参数的程序,用不同的 差异参数 来多次运行程序
https://github.com/cataerogong/batcher

autohotkey batch batch-processing windows

Last synced: about 1 year ago
JSON representation

对于支持命令行参数的程序,用不同的 差异参数 来多次运行程序

Awesome Lists containing this project

README

          

# Batcher

## 功能

对于支持命令行参数的程序,用不同的 `差异参数` 来多次运行程序。

## 为啥会做这个玩意儿

平常逛 B 站时,看到喜欢的视频会使用 yt-dlp 下载保存,有时会顺藤摸瓜下载一大堆,这时就比较烦,需要不停复制、切窗口、粘贴,还要编辑命令行,所以就萌生了做个工具的想法。加上日常也会遇到一些需要用不同参数多次运行程序的场景,于是就做了这个小工具。

## 我的典型使用场景

逛 B 站,看到一个牛 B 的做菜 UP,想挑选他的某些做菜视频下载保存。

打开 `Batcher`,设好保存路径和 yt-dlp 命令模板,勾上“监控剪贴板”,点击“执行队列”,然后就只需要看到喜欢的视频复制视频链接就行了。完事取消“监控剪贴板”,点击“停止执行”。

## 一些提示

* `执行队列`:开始执行后会反复扫描队列,因此不必等所有命令添加完毕后再开始“执行队列”,可以先开始“执行队列”,再慢慢添加任务,节约时间。

* `监控剪贴板`:连续创建命令时非常好用,但确保你在接下来一段时间都用 `Batcher` 来做某件事情时才打开这个开关,否则复制操作都将被 `Batcher` 拦截并清空,导致粘贴失败。记得完事后及时关闭这个开关。

* `命令窗口大小`:

- 当不是 `Min` 和 `Hide` 时,新启动的程序窗口会弹到最前,可能会影响连续操作。

- 不建议选 `Hide`,会导致无法与运行的程序互动,万一需要互动就尴尬了。

* `并行执行`:慎用。如果队列过长,可能会因为一次性打开大量窗口而导致系统卡顿,也可能会由于同时下载数量过多而被网站封禁。

* 所有设置(除了 `监控剪贴板` )和命令队列在正常退出时会保存到配置文件,下次启动后会自动恢复。

## 使用说明

* `命令执行路径`

程序运行的当前路径。比如 yt-dlp 在未指定保存路径时,就会保存到当前路径。

例如:`D:\Downloads\Bilibili`

* `命令模板`

运行程序的命令行模板,包括程序和命令行参数。其中用 `$$$` 代表 `差异参数` 的插入位置,可以出现多次。这个 `$$$` 可以改成其他的字符串,以避免与命令中的字符串相同,从而导致错误的插入。

例如:`D:\Tools\yt-dlp\yt-dlp.exe --windows-filenames --cookies-from-browser firefox "$$$"`

* `参数`

在命令模板中的 `$$$` 位置插入的 `差异参数` 字符串。

例如:`https://www.bilibili.com/video/BV1GJ411x7h7/`

> 以上三个设置示例的结果就是生成命令 `D:\Tools\yt-dlp\yt-dlp.exe --windows-filenames --cookies-from-browser firefox "https://www.bilibili.com/video/BV1GJ411x7h7/"`, 执行后会下载视频并保存到 `D:\Downloads\Bilibili` 目录下。

* `监控剪贴板`

勾选后,自动监控剪贴板内容,发现有新复制的文本就作为 `参数` 生成新的命令加入待执行队列,**并清空剪贴板**。

* `加入队列`:用 `命令执行路径`、`命令模板`、`参数` 输入框的内容生成新的命令,加入下面的命令队列等待执行。`参数` 如果有多行文字,每行会生成一条命令。

* 命令队列

- `右键单击`:将命令改为“暂不执行”(原状态需为“等待执行”、“发生错误”)

- `左键双击`:将命令改为“等待执行”(原状态需为“暂不执行”、“执行完毕”、“发生错误”)

- `右键双击`:将命令改为“执行完毕”(原状态需为“暂不执行”、“等待执行”、“发生错误”)

- `Ctrl` + `左键单击`:编辑命令行及执行路径(状态不能为“正在执行”)

* `全部置为` [`等待执行|暂不执行|执行完毕`]:修改队列中所有命令的状态

* `清除已执行`:删除队列中执行完毕的命令

* `清空队列`:删除队列中所有命令

* `命令窗口大小`

运行命令时的窗口大小。

* `并行执行`

不勾选时,**串行** 启动队列中的命令,会等前一个命令执行完毕后再启动下一个命令。

勾选时,**并行** 启动队列中的命令,启动一个命令后,不等待命令结束,直接启动下一个命令。

* `执行队列`:开始扫描执行队列,并按顺序启动其中的待执行命令。

* `停止执行`:停止扫描执行队列。