0

对于那些使用 InstallAnywhere 的人,我有一个问题:

我基本上已经在 InstallAnywhere 项目中编写了一个 while 循环。我想找到一种在此“While 循环”中实现计数器的简单方法。这是我尝试的一些伪代码:

Set InstallAnywhere Variable: $COUNT$ = 0
Jump Label: while
Execute Script/Batch File:
    @echo off
    set /a TEMP_NUM=$COUNT$+1 > nul
    echo %TEMP_NUM%
Set InstallAnywhere Variable: $COUNT$ = $EXECUTE_STDOUT$
Jump: while    Rule: $COUNT$ [Less Than or Equal to] 100

上面的代码将 $COUNT$ 设置为以下内容:

Loop 0:
    1
Loop 1:
    1
Loop 2:
    1
...

我想知道是否会发生这种情况,因为 InstallAnywhere 在第一个循环中将批处理文件中的 $COUNT$ 替换为 0,然后在后续循环中它重新使用相同的批处理文件,其中 $COUNT$ 已经被替换(就像在批处理 for 循环中一样或 if 语句)。

4

2 回答 2

0

是否应该使用特殊键 $lax.nl.env.counts$ 从 OS ENV 表访问 $COUNTS$ ?每个文档,

您可以通过将属性名称指定为全小写字符串来访问任何系统环境变量(例如,通过 $lax.nl.env.path$ 访问路径)。当 LaunchAnywhere 执行时,这些属性在应用程序运行时解析。您还可以通过 InstallAnywhere 变量访问系统环境变量。

于 2014-01-16T21:17:46.377 回答
0

刚刚在您的代码中添加了一些行号:

  1. 设置 InstallAnywhere 变量:$COUNT$ = 0
  2. 跳转标签:while
  3. 执行脚本/批处理文件:
  4. @echo 关闭
  5. 设置 /a TEMP_NUM=$COUNT$+1 > nul
  6. 回声 %TEMP_NUM%
  7. 设置 InstallAnywhere 变量:$COUNT$ = $EXECUTE_STDOUT$
  8. 跳转:while 规则:$COUNT$ [小于或等于] 100

在第 5 行和第 6 行,您实际上在做的是:echo $COUNT$+1

在第 7 行,您将 COUNT 设置为 $EXECUTE_STDOUT$(我相信这通常是 0?)这可以解释为什么它每次都打印 1,因为 $COUNT$ 在每个循环结束时都设置为 0。

于 2018-05-25T09:29:09.313 回答