Keyboard_Maestro使用For Each 批量单次提取剪贴板

今天我研究了:face_with_monocle:很久Keyboard_Maestro的For Each模块(刚接触很多不懂),分享一下,自己的实际中遇到的具体案例。

比如工作里面别人会经常发一段文字,比如

Carl, bom dia.
Pode imprimir por favor?

BSHFL2401105332
BSHFL2402051721
BNBFL240306792
BSHFL240303751
MUFE24000404

我需要每次复制下面的号码去工作,如果有5个号码,我需要复制5次。我的要求是只复制这一段文本,自动每次提取对应的号码。

我先把剪贴板设置变量ClipboardContent,然后使用ForEach 循环这一段剪贴板,用到了The Lines in 这个子集,循环的内容就是变量就是ClipboardContent,For each 后面是单个循环的内容,因为这里我采用的是Lines子集,所以就是按照每一行来循环。(这两个变量我弄了好久才有点搞明白)

接下去就是使用正则去提取每一行我需要的号码,如果没有就清空剪贴板,如果有,那么就把这一行复制到剪贴板,在使用Alert暂停macro,等待我这个号码的工作做完,接下去点击继续,另外一个号码又在我的剪贴板,我继续去工作。以此循环。这样就完成了我的工作,不需要去重复复制号码5次。

3 个赞

感觉这个结合 shortcuts 会简单一些

哈哈是的,快捷指令我比较熟,Keyboard Maestro刚接触,想做的试试看。我比较喜欢MINJA关于每个APP的边界的文章,他们适用于哪些情况。

问题是如果你只是看文章,其实没有感觉的自己做过才有感觉。

1 个赞

可以去KM的官方论坛看看,我之前看到有人分享过“拆分文本”的扩展,KM是支持直接粘贴剪贴板历史记录中的任意条目的,在理论上能做两个Macro,一个复制并将复制内容按照行记录到剪贴板历史里,另一个用来粘贴并提取下一条记录,这样可以省去中间提醒之类的步骤。不过如果楼主每条数字之间的工作内容比较多的话可能还是目前的状态更合适,要不然很容易忘记做到第几个了

1 个赞

因为中间过程也会用到黏贴 所以还是弄个提醒比较好不容易乱 :joy:

哦如果是怕打乱当前剪贴板的话完全可以把这套流程放到KM的named clipboard里,完全和系统剪贴板独立

2 个赞

天呀,原来还有这操作,我去研究一下:face_with_monocle:,谢谢