Как передать параметры компилятору командной строки Inno Setup? - PullRequest
15 голосов
/ 04 февраля 2009

В группе новостей IS было предложено использовать / D =, но при использовании iscc.exe, поставляемого с версией 5.2.3, я получаю ошибку "Неизвестная опция:".

Тогда в скрипте, как вы используете значение параметра командной строки?

Ответы [ 3 ]

23 голосов
/ 05 февраля 2009

Вам, как говорит MicSim, нужен препроцессор. Он включен в последний ISPack. После установки iscc поддерживает /D.

Затем вы можете использовать значения, определенные следующим образом (при условии, что вы сделали /DVERSION_NAME=1.23):

AppVerName=MyApplication v{#VERSION_NAME}
5 голосов
/ 05 февраля 2009

Из справочного файла Inno Setup:

Препроцессор Inno Setup заменяет стандартная командная строка установки Inno Компилятор (ISCC.exe) расширенным версия. Эта расширенная версия предоставляет дополнительные параметры для контроля Препроцессор Inno Setup.

«Дополнительные параметры» включают параметр / d.

0 голосов
/ 03 марта 2011

Если вы хотите анализировать аргументы командной строки из кода inno, используйте метод, подобный этому. Просто вызовите скрипт inno из командной строки следующим образом:

C:\MyInstallDirectory>MyInnoSetup.exe -myParam parameterValue

Затем вы можете вызывать GetCommandLineParam следующим образом:

myVariable := GetCommandLineParam('-myParam');

// ============================================= =====================

{ Allows for standard command line parsing assuming a key/value organization }
function GetCommandlineParam (inParam: String):String;
var
  LoopVar : Integer;
  BreakLoop : Boolean;
begin
  { Init the variable to known values }
  LoopVar :=0;
  Result := '';
  BreakLoop := False;

  { Loop through the passed in arry to find the parameter }
  while ( (LoopVar < ParamCount) and
          (not BreakLoop) ) do
  begin
    { Determine if the looked for parameter is the next value }
    if ( (ParamStr(LoopVar) = inParam) and
         ( (LoopVar+1) < ParamCount )) then
    begin
      { Set the return result equal to the next command line parameter }
      Result := ParamStr(LoopVar+1);

      { Break the loop }
      BreakLoop := True;
    end

    { Increment the loop variable }
    LoopVar := LoopVar + 1;
  end;
end;

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...