2014-01-06 4 views
0

У меня есть вопрос для тех из вас, кто работал с InstallAnywhere:Increment численное значение в InstallAnywhere

Я по существу написал время цикла в проекте InstallAnywhere. То, что я хотел бы найти, - простой и простой способ реализовать счетчик внутри этого цикла 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 loop или if statement).

+0

Похоже, что вы никогда не увеличиваете переменную '$ COUNT $' в этом цикле. Вместо этого вы устанавливаете '$ TEMP_VAR $' равным '$ COUNT $ + 1', поэтому' $ COUNT $ 'никогда не изменяется. Хотя я не работал с InstallAnywhere. – unclemeat

+0

Является ли параметр Set SetAnywhere Variable: ... '' $ COUNT $ 'для вывода строки' Execute Script/Batch File: '? Если это так, похоже, это должно сработать. Однако, опять же, я не использовал InstallAnywhere, поэтому я не понимаю, как обрабатываются переменные. – unclemeat

+0

Да, InstallAnywhere позволяет создавать «действия», и вы просто заполняете детали. Существует действие, выполняющее все, что вы вводите в текстовую область, и сохраняет вывод в переменной ($ EXECUTE_STDOUT $). Я не уверен, что эти действия реализованы за исключением того, что они реализованы с использованием java. Возможно, что текстовая область, содержащая пакетный код, сохраняется в пакетном файле с замененными переменными InstallAnywhere, а затем, когда действие выполняется снова, оно просто перезапускает сохраненный пакетный файл вместо его воссоздания. Это означало бы, что мое решение не сработает. – user972276

ответ

0

может быть, что $ COUNTS $ должен быть доступен из таблицы OS ENV с использованием специального ключа $ lax.nl.env.counts $? в документации,

Вы можете получить доступ к любой системной переменной среды (например, доступ путь через $ lax.nl.env.path $), указав имя свойства как все-строчной строки. Эти свойства разрешаются при использовании приложения , когда выполняется LaunchAnywhere. Вы также можете получить доступ к переменным System Environment через переменные InstallAnywhere.

Смежные вопросы