我有imacros firefox附加组件,它从一个csv文件中获取数据。但我需要告诉imacros将多个文件中的数据作为循环 这里我的脚本取自1.csv 但我是2.csv& 3.csv& 4.csv以及更多..我需要它从它们作为循环,如果我运行播放imacros将从1.csv获取数据,一旦他们再次完成开始,但从2.csv ..等像那样..具有相同的规则对于所有..也是文件都是相同的列相同的数据,但不能将它们合并为一个file.csv
SET !DATASOURCE /Users/almishal/Desktop/imacros/new/1.csv
SET !DATASOURCE_COLUMNS 18
SET !LOOP 1
SET !DATASOURCE_LINE {{!LOOP}}
TAB CLOSEALLOTHERS
TAG POS=1 TYPE=IMG ATTR=SRC:http://www.example.com/vb/sty1/buttons/newthread.gif
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:vbform ATTR=NAME:subject CONTENT={{!COL2}}
SET !VAR1 EVAL("'{{!COL4}}'.replace(/^965/gi,"")")
SET PRICE {{!COL5}}
SET !VAR3 EVAL("'price:<SP>{{PRICE}}<SP>dollar'.replace(/price:<SP>0+<SP>dollar/,"")")
TAG POS=1 TYPE=TEXTAREA FORM=NAME:vbform ATTR=ID:vB_Editor_001_textarea CONTENT=[CENTER]{{!COL3}}<BR>{{!VAR3}}<BR><SP>my<SP>number<SP>{{!VAR1}}<SP><BR><BR>{{!VAR2}}<BR>[/CENTER]
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:vbform ATTR=ID:vB_Editor_001_save
TAG POS=1 TYPE=AREA ATTR=HREF:http://www.example.com/vb/index.php
ONDIALOG POS=1 BUTTON=OK CONTENT=
TAG POS=1 TYPE=A ATTR=TXT:log<SP>out
答案 0 :(得分:0)
您可以在the JavaScript Scripting Interface的帮助下获得最优雅的解决方案。但在这里我建议只使用'iim'。所以,创建例如'.csv'的'macro1.iim','2.csv'的'macro2.iim'等。'macro1.iim'的代码如下:
' number of lines in csv-files
SET linesInFile 1
SET !LOOP EVAL(2-{{linesInFile}})
SET !DATASOURCE /Users/almishal/Desktop/imacros/new/1.csv
SET !DATASOURCE_LINE EVAL({{!LOOP}}+{{linesInFile}}-1)
TAB CLOSEALLOTHERS
' ... (your code here)
' next macro to play
SET next "macro2"
SET S EVAL("('{{!LOOP}}' == 1) ? 'imacros://run/?m={{next}}.iim' : 'javascript:undefined;';")
URL GOTO={{S}}
我相信你已经抓住了这个想法,并将对'macro2.iim'等进行必要的修改(在最后一个宏中不会有'下一个宏播放'块。)为了播放这个你应该在通常(NOT循环)模式下只运行'macro1.iim'。另请注意,我认为所有宏都位于默认“iMacros”文件夹的根目录中。