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

时间:2017-09-06 05:05:21

标签: split eval extract clipboard imacros

我希望我能清楚。我是一个总菜鸟。这是我第一次在这里问一个问题,所以我为丢失我应该提供的任何内容而道歉。

所以我想要实现的是保存/'拆分'使用EVAL在csv中提取的字符串的某些部分。作为我想要实现的简化模型,这里是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中输入一个条目&#34; COMMAND&#34;。是否可以在没有提取的情况下将某些内容复制到CLIPBOARD?也许这样,原始提取的文本不会反映在csv中。我将不胜感激任何解决方案或解决方法。谢谢!

2 个答案:

答案 0 :(得分:1)

初始代码的问题在于您在此处使用了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和SET http://wiki.imacros.net/set

的详细信息

答案 1 :(得分:0)

警告:我不太了解代码。如果有助于社区,请随时纠正我的任何事情。谢谢!

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

以上是有问题的代码的固定版本:

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