Получить ответ после удаления папки партиями с помощью NSIS - PullRequest
0 голосов
/ 20 сентября 2019

Я выполняю пакетный файл с помощью сценария NSIS.

, который удаляет некоторые папки из указанного местоположения папки.

после выполнения пакетного пользователя получит окно сообщения.

Проблема:

командный файл запускается, но до его завершения пользователь получает окно сообщения.Что влияет на дальнейшие варианты использования.

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

Пакетный файл:

@echo off

if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)
rd "FolderLocation1" /s /q

rd "FolderLocation2" /s /q

Сценарий NSIS:

 ExecWait '$INSTDIR\BATCHFILE.bat'
  MessageBox MB_OK $(Message For Message Box)
  Quit

1 Ответ

2 голосов
/ 20 сентября 2019

NSIS ожидает пакетный файл, проблема в том, что вы обращаетесь к Powershell с глаголом, который не ждет.Добавление -wait, по-видимому, завершается неудачно в сочетании с глаголом «RunAs».

Вместо повышения для этой единственной команды вы должны поднять ваш установщик вместо.

RequestExecutionLevel admin ; Require admin rights on Vista+ (when UAC is turned on)

!include LogicLib.nsh

Function .onInit
UserInfo::GetAccountType
Pop $0
${If} $0 != "admin" ; Require admin rights on NT4+
    MessageBox mb_iconstop "Administrator rights required!"
    SetErrorLevel 740 ; ERROR_ELEVATION_REQUIRED
    Quit
${EndIf}
FunctionEnd

Page InstFiles

Section
RMDir /R "FolderLocation1"
RMDir /R "FolderLocation2"
SectionEnd
...