【问题标题】:How to Loop imacro script using batch file如何使用批处理文件循环 imacro 脚本
【发布时间】:2014-11-10 09:24:26
【问题描述】:

我的代码在 .bat 文件中如下所示

start /B "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m="loop-google-ad-word.iim" -loop 3
timeout /t 120

但问题是我无法从批处理文件中循环我的 loop-google-ad-word.iim 脚本 3 次,它只正常运行一次。

我在这里提到了http://wiki.imacros.net/Example-Batchfile.bat 并做了类似的事情。 也提到了iMacros randomly stops in a loop,但它不会循环

感谢任何相关建议。 提前致谢。

【问题讨论】:

    标签: javascript batch-file imacros


    【解决方案1】:

    使用批处理文件循环呢?

    for /L %%A in (1,1,3) do (
        start /B "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m="loop-google-ad-word.iim"
        timeout /t 120
    )
    

    【讨论】:

    • 没有变化,它仍然只在不循环@SomethingDark时运行
    • @somethingDark 我猜这是一个批处理循环,用户想要的是为 imacro 放置循环。
    • 这是一个批处理循环。 Kinjal 抱怨 iMacro 循环不起作用,所以我尝试了一种解决方法。
    • 我想从一个批处理文件中调用宏脚本,这个脚本应该循环n no。次让我们说 3 次。而且我无法循环批处理文件 n 次,因为我的宏脚本在每个循环中调用 excel 表并从列中获取数据,因此在每个循环中都会有下一行数据。希望它能解决我的问题
    • 这实际上使它变得更加复杂。我看不出如何在循环中调用宏并将循环添加为参数可能会产生不同的结果。你只是把一行放在一个循环中。
    【解决方案2】:

    上面的代码帮助我循环批处理文件,所以在这个循环中我还添加了代码来删除我的 imacro 从中读取数据的 csv 文件的第一行,因此 imacro 将在每个循环中自动获取下一行数据。

    根据我的 csv 文件中的行,它应该循环的次数也是动态的。所以它首先算不上。行,然后将其传递给 for 循环 %cnt%

    @echo It will count no.of lines in file and pass the count 2for loop
    set file=C:\Users\account\Documents\iMacros\adwords-filename.csv
    set /a cnt=0
    for /f %%a in ('type "%file%"^|find "" /v /c') do set /a cnt=%%a
    echo %file% has %cnt% lines
    timeout /t 5
    
    @echo Loop starts now-------------------
    for /L %%A in (1,1,%cnt%) do (
        @echo call macro script
        start /B "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m="loop-google-ad-word.iim"
        timeout /t 60
    
        @echo delete 1st line of csv file at each loop
        set "csv=C:\Users\account\Documents\iMacros\adwords-filename.csv"
        more +1 "%csv%" >"%csv%.new"
        move /y "%csv%.new" "%csv%" >nul
    )
    

    【讨论】:

      【解决方案3】:

      在我看来,从 .BAT 文件启动 3 次 .iim 宏循环的最简单方法是将以下语句放在宏的开头(+ 如果将 '!DATASOURCE_LINE' 调整为 2 或 3您的宏使用数据源...):

      SET !LOOP -1
      
      SET !DATASOURCE_LINE {{!LOOP}}
      ADD !DATASOURCE_LINE 2
      

      您的 .BAT 文件将如下所示:

      start /B "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m="loop-google-ad-word.iim"
      timeout /t 120
      

      (我自己用的……)

      【讨论】:

        【解决方案4】:

        如果你使用批处理脚本,你可以为无限循环构造这样的代码!

        @echo off
        
        :Intro
        start /B "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m="loop-google-ad-word.iim" -loop 3
        timeout /t 120
        goto Intro
        
        quit
        

        好的,这使用了一个简单的 goto 命令,希望它有效!

        【讨论】:

          猜你喜欢
          • 2011-02-05
          • 2013-10-01
          • 2011-06-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-21
          • 2021-01-01
          • 1970-01-01
          相关资源
          最近更新 更多