1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

Вопрос Как оптимизировать скрипт для работы из под консоли?

Тема в разделе "Inno Setup", создана пользователем Incorrect, 6 июн 2019.

  1. Старожил

    Регистрация:
    11 июл 2014
    Сообщения:
    268
    Симпатии:
    125
    Пол:
    Мужской
    Здравствуйте!
    Есть в общем у меня на сервере Windows. Пробиваться из под графической оболочки - грузить ядро, мне это не надо.
    Требуется распаковывать мои репаки со стороны сервера.
    Как заставить работать скрипт из под консоли?

    Допустим есть команда:
    setup.exe -v ru -t ru -ico yes -i /Games/{AppName}

    -v - Язык звуков
    -t - Язык текста
    -ico - Создавать ли иконки
    Если yes, то создавать. no - не создавать.
    -i - Путь установки

    Сложен ли путь такой реализации? И существуют ли примеры?
     
  2. Пользователь

    Регистрация:
    14 авг 2012
    Сообщения:
    25
    Симпатии:
    21
    Incorrect и sergey3695 нравится это.
  3. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.302
    Симпатии:
    836
    Incorrect, какой-то пример. CheckParam - проверяет параметры ком. строки.
    снандартные, по линку:
    http://www.jrsoftware.org/ishelp/index.php?topic=setupcmdline
    Код (Inno):
    #define MyAppName "Programmer's Notepad"
    #define MyAppName2 "Programmer''s Notepad"
    #define P "Portable"
    [Setup]
    AppName=My Application
    AppVersion=1.5
    DefaultDirName={code:GetInstallDir|{pf}\{#MyAppName}}
    Uninstallable=not PortableCheck

    [Files]
    Source: "app\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Check: InstallerCheck;
    Source: "appP\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Check: PortableCheck;

    [Code]
    var
      Portable,Installer: TNewRadioButton;

    function CheckParam(s: string): boolean;
    var
    i: integer;
    begin
      for i := 0 to ParamCount do begin
        Result := ParamStr(i) = s;
        if Result then Break;
      end;
    end;

    function GetInstallDir(S: String): String;
    begin
      if ((CheckParam('/p')) or (Assigned(Portable) and Portable.Checked)) then
        Result:= ExpandConstant('{userdesktop}\{#MyAppName2} {#P}')
      else
        Result:= ExpandConstant(S);
    end;

    function PortableCheck: Boolean;
    begin
      Result := Portable.Checked or CheckParam('/p');
    end;

    function InstallerCheck: Boolean;
    begin
      Result := Installer.Checked or CheckParam('/i');
    end;

    procedure InitializeWizard();
    begin
      Portable := TNewRadioButton.Create(WizardForm);
      with Portable do
      begin
        Parent := WizardForm.WelcomePage;
        Left := ScaleX(320);
        Top := ScaleY(295);
        Width := ScaleX(100);
        Height := ScaleY(17);
        Caption := 'Портативная';
        Checked :=CheckParam('/P');
      end;

      Installer := TNewRadioButton.Create(WizardForm);
      with Installer do
      begin
        Parent := WizardForm.WelcomePage;
        Left := ScaleX(210);
        Top := ScaleY(295);
        Width := ScaleX(100);
        Height := ScaleY(17);
        Caption := 'Стационарная';
        Checked := not CheckParam('/P');
      end;
    end;
     
     
    Incorrect и agent555 нравится это.

Поделиться этой страницей