使用javascript实现基于imacros循环的csv值

imacros loop based csv values with javascript

本文关键字:循环 csv imacros javascript 实现 使用      更新时间:2023-09-26

我想基于一些csv值在iMacros上循环一个操作。例如,记录一循环20次,记录二循环10次,这些值保存在csv文件中。如果我使用javascript,循环将是静态的,并适用于所有记录。所以,如果有人知道怎么做,我将不胜感激。这是我的imacros代码样本

var loop = "10"; // Loop
var build;
build =  "CODE:";
build +=  "CMDLINE !DATASOURCE source.csv" + "'n"; 
build +=  "SET !DATASOURCE_COLUMNS 7" + "'n"; 
build +=  "SET !LOOP 1" + "'n"; 
build +=  "SET !DATASOURCE_LINE {{!LOOP}}" + "'n"; 
build +=  "SET !ERRORIGNORE YES" + "'n"; 
build +=  "TAB T=1" + "'n";
build +=  "TAG POS=1 TYPE=TEXTAREA ATTR=NAME:content CONTENT=" + "'n"; 
build +=  "TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=name:generate" + "'n";
for (i=0;i<loop;i++) {
iimPlay(build);
}

因此,每个循环都有不同的计数。但是,因为我使用的是javascript,所以循环将使用静态计数并应用于每个记录。我需要用javascript读取csv文件上的循环值,并在脚本上应用。但是,正如我所知,javascript不能使用imacros中的{{!COL}}标记。抱歉我英语不好,谢谢。

让我们从下面的代码开始,朝着您想要的代码努力。首先,不能将循环声明为字符串并在i循环中使用它。它必须是数值。其次,使用iimSet在iMacros JavaScript宏中设置循环。在其中,您必须放入{{LOOP}},而不是{!LOOP}。示例如下。

  var loop = 10; // Loop
var build;
build =  "CODE:";
build +=  "CMDLINE !DATASOURCE source.csv" + "'n"; 
build +=  "SET !DATASOURCE_COLUMNS 7" + "'n"; 
build +=  "SET !LOOP 1" + "'n"; 
build +=  "SET !DATASOURCE_LINE {{loop}}" + "'n"; 
build +=  "SET !ERRORIGNORE YES" + "'n"; 
build +=  "TAB T=1" + "'n";
build +=  "TAG POS=1 TYPE=TEXTAREA ATTR=NAME:content CONTENT=" + "'n"; 
build +=  "TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=name:generate" + "'n";

for (i=0;i<loop;i++) {
iimSet("loop",i)
iimPlay(build);
}