iMacros - 将原始提取的文本排除在保存在 csv 中

iMacros - Exclude original extracted text from being saved in csv

我希望我说的很清楚。我是个菜鸟。这也是我第一次在这里提问,所以很抱歉遗漏了我应该提供的任何内容。

所以我想要实现的是使用 EVAL 在 csv 中保存/'split' 提取字符串的某些部分。作为我要实现的目标的简化模型,这里是 iMacros 中的一个演示的修改代码:

URL GOTO=http://www.iopus.com/imacros/demo/v6/extract2/       
TAG POS=1 TYPE=P ATTR=CLASS:heading&&TXT:* EXTRACT=TXT  
SET commandOnly EVAL("var s=\"{{!EXTRACT}}\"; s.split(' ')[2];")
ADD !EXTRACT {{commandOnly}}
SAVEAS TYPE=EXTRACT FOLDER=* FILE=Extract_{{!NOW:yyyy-mm-dd<SP>hhh<SP>nnmin}}.csv

如您所见,生成的 csv 文件将填充 2 列。我希望它在 A1 中只产生一个条目 "COMMAND"。是否可以在不提取的情况下将某些内容复制到剪贴板?因为也许那样,原始提取的文本不会反映在 csv 中。我将不胜感激任何解决方案或解决方法。谢谢!

警告:我不太懂密码。如果对社区有帮助,请随时纠正我的任何问题。谢谢!

我使用 SET !EXTRACT NULL 解决了我的问题。我不太确定应该如何使用它们,但看起来我们必须在每个 EXTRACT 命令之间进行 NULL 提取。请注意,上面的示例只是一个简单的参考,我正在处理的实际宏有许多提取的字符串,因此,SET !EXTRACT NULL 的定位是关键。我还确保我的 ADD !EXTRACT 命令尽可能接近 SAVEAS(在底部!)。这样做可以防止最初提取的字符串被填充到 csv --- 如果您正在修改提取的字符串(即 EVAL 的替换、substr 等)特别有用

这是上面有问题的代码的修复版本:

URL GOTO=http://www.iopus.com/imacros/demo/v6/extract2/       
TAG POS=1 TYPE=P ATTR=CLASS:heading&&TXT:* EXTRACT=TXT  
SET commandOnly EVAL("var s=\"{{!EXTRACT}}\"; s.split(' ')[2];")
SET !EXTRACT NULL
ADD !EXTRACT {{commandOnly}}
SAVEAS TYPE=EXTRACT FOLDER=* FILE=Extract_{{!NOW:yyyy-mm-dd<SP>hhh<SP>nnmin}}.csv

您初始代码的问题是您在此处使用了 ADD

ADD !EXTRACT {{commandOnly}}

而不是 SET。在您的情况下,这样做是将变量 commandOnly 中的值添加到 !EXTRACT 已经拥有的值,而不是像 SET 那样覆盖它。

您只需将 ADD 更改为 SET 即可。

所以完整的代码是

URL GOTO=http://www.iopus.com/imacros/demo/v6/extract2/       
TAG POS=1 TYPE=P ATTR=CLASS:heading&&TXT:* EXTRACT=TXT  
SET commandOnly EVAL("var s=\"{{!EXTRACT}}\"; s.split(' ')[2];")
SET !EXTRACT {{commandOnly}}
SAVEAS TYPE=EXTRACT FOLDER=* FILE=Extract_{{!NOW:yyyy-mm-dd<SP>hhh<SP>nnmin}}.csv

有关 ADD 的更多信息 http://wiki.imacros.net/ADD and SET http://wiki.imacros.net/set