Innosetup исполнение команд с cmd и запуск bat файла

@AssistGPT
Как запустить cmd файл в конце установки до завершения установки
Для запуска cmd файла в конце установки до завершения процесса установки в Inno Setup, вы можете воспользоваться секцией [Run] с параметром [Run] для запуска вашего cmd файла. Вот пример кода, который показывает, как это можно сделать:

Код:
[Run]
Filename: "{cmd}"; Parameters: "/C ""{app}\yourfile.cmd"""; Flags: runhidden waituntilterminated

В этом примере:
  • {cmd} - это константа, указывающая на исполняемый файл cmd.exe.
  • {app} - это константа, указывающая на папку установки вашего приложения.
  • yourfile.cmd - это имя вашего cmd файла, который нужно запустить.

При использовании параметра waituntilterminated, установщик будет ждать, пока cmd файл завершит свою работу, прежде чем завершить процесс установки.

Пожалуйста, убедитесь, что путь к вашему cmd файлу указан правильно в коде.

Надеюсь, это поможет вам запустить cmd файл в конце установки до завершения процесса установки в Inno Setup. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться.
 
@AssistGPT
А как прописать путь к cmd файлу?
Для того чтобы прописать путь к вашему cmd файлу в Inno Setup, вам нужно указать полный путь к файлу в параметре [Run]. Вот пример кода, демонстрирующий, как это можно сделать:

Код:
[Run]
Filename: "{cmd}"; Parameters: "/C ""C:\путь\к\вашему\файлу\yourfile.cmd"""; Flags: runhidden waituntilterminated

В этом примере:
- C:\путь\к\вашему\файлу\yourfile.cmd - это путь к вашему cmd файлу. Замените этот путь на фактический путь к вашему файлу.

Пожалуйста, убедитесь, что путь к вашему cmd файлу указан правильно в коде.

Если у вас есть дополнительные вопросы или вам нужна дополнительная помощь, пожалуйста, не стесняйтесь обращаться.
 
@AssistGPT
как запустить команду в конце установки но до финальной страницы, на проверку установку драйверов из папки
вот команда pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install
 
@AssistGPT
как запустить команду в конце установки но до финальной страницы, на проверку установку драйверов из папки
вот команда pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install
Для запуска команды в конце установки, но перед финальной страницей, вам нужно будет использовать секцию [Run] в Inno Setup. Вот пример кода, который показывает, как запустить команду pnputil.exe для установки драйверов из папки C:\drivers\ в конце установки:

Код:
[Run]
Filename: "{sys}\cmd.exe"; Parameters: "/C pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install"; Flags: runhidden waituntilterminated; BeforeInstall; Check: not IsTaskSelected('desktopicon')

В этом примере:
  • {sys}\cmd.exe - это путь к исполняемому файлу cmd.exe.
  • Параметры /C pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install передают команду pnputil.exe для установки драйверов из папки C:\drivers\ и её подпапок.
  • Флаги runhidden waituntilterminated говорят установщику запустить команду скрыто и дождаться её завершения.
  • BeforeInstall указывает, что команда будет выполнена перед началом установки.
  • Check: not IsTaskSelected('desktopicon') проверяет, что задача с созданием ярлыка на рабочем столе не выбрана, чтобы команда не выполнялась при создании ярлыка.

Пожалуйста, убедитесь, что путь к pnputil.exe и к вашим драйверам указан правильно в коде.

Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, пожалуйста, дайте знать.
 
@AssistGPT

Измени пожалуйста в коде BeforeInstall на после установки
Конечно, вот исправленный код, где команда будет выполнена после завершения установки:

Код:
[Run]
Filename: "{sys}\cmd.exe"; Parameters: "/C pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install"; Flags: runhidden waituntilterminated; AfterInstall; Check: not IsTaskSelected('desktopicon')

Теперь команда будет запущена после завершения установки. Пожалуйста, убедитесь, что путь к pnputil.exe и к вашим драйверам указан правильно в коде.

Если у вас возникнут дополнительные вопросы или понадобится дополнительная помощь, не стесняйтесь обращаться.
 
@AssistGPT
Пишет ошибку при компиляции кода
Line 57:
Unrecornized parameter name AfterInstall; check:
Извините за путаницу. В Inno Setup нет параметра AfterInstall для секции [Run]. Давайте вместо этого воспользуемся другим подходом. Мы можем использовать секцию
Код:
 для запуска команды после установки. Вот исправленный код:

[CODE="pascal"][Run]
Filename: "{sys}\cmd.exe"; Parameters: "/C pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install"; Flags: runhidden waituntilterminated; Check: not IsTaskSelected('desktopicon')

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then
  begin
    Exec(ExpandConstant('{sys}\cmd.exe'), '/C pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;
end;

В этом коде команда будет выполнена после завершения установки. Пожалуйста, убедитесь, что путь к pnputil.exe и вашим драйверам указан правильно в коде.

Попробуйте использовать этот исправленный код. Если у вас возникнут дополнительные вопросы или проблемы, пожалуйста, дайте знать.
 
AssistGPT
Снова пишет ошибку
Line 56:
Invalid selection tag.
Извините за путаницу. Попробуем исправить это. Вот обновленный код без использования тега Check:

Код:
[Run]
Filename: "{sys}\cmd.exe"; Parameters: "/C pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install"; Flags: runhidden waituntilterminated

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
begin
  if CurStep = ssPostInstall then
  begin
    Exec(ExpandConstant('{sys}\cmd.exe'), '/C pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;
end;

Попробуйте использовать этот обновленный код. Он должен выполнить команду после завершения установки. Пожалуйста, убедитесь, что пути к pnputil.exe и вашим драйверам указаны правильно в коде.

Если возникнут дополнительные вопросы или проблемы, пожалуйста, дайте знать.
 
Последнее редактирование модератором:
Назад
Сверху Снизу