【问题标题】:Get response after deleting folder by batch using NSIS使用 NSIS 批量删除文件夹后获取响应
【发布时间】:2020-01-21 09:47:02
【问题描述】:

我正在使用 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

【问题讨论】:

    标签: batch-file nsis


    【解决方案1】:

    NSIS 等待批处理文件,问题是您使用不等待的动词调用 Powershell。添加-wait 与“RunAs”动词结合时似乎会失败。

    您应该elevate your installer 而不是提升这个单一命令。

    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
    

    【讨论】:

    • 谢谢@Anders。一次查询,RMDi 可以删除隐藏文件夹吗?
    • @RaOne 是的,我相信它可以
    猜你喜欢
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    相关资源
    最近更新 更多