我正在使用以下命令复制文件。设置输出路径后...File"Documents\*"此操作完美无缺。处理Documents目录中的文件没有问题,直到...如果目录中存在现有文件(具有不同名称)的副本,则无论名称如何,仅复制文件的第一个实例。我要怎么做才能复制所有文件,而不管它们是否是其他文件的副本?更正/更好的解释(也许)对于造成的困惑,我深表歉意。请允许我尝试重述这个问题。使用FILE命令提取的文件是这里的问题。这些文件包括原始文件和相同文件的副本(只是名称不同)。例如:MyDocument.txt和copyOfMyDocument.txt等..当应用File命令时,为了将文件提取到当
到目前为止,我已经弄清楚如何通过读取注册表项并测试该目录是否存在来检测以前安装过我的软件。(两者都在NSIS帮助文件中有详细记录)。现在我想强制用户指定一个不同的目录,如果应用程序以前安装过的话。(不想自己强制卸载,因为以前的版本只是删除所有内容,包括保存的数据)。据我所知,MUI2.nsh中有用于许可证、安装文件夹、进度指示器等的预定义模板。如何在安装程序流程的这个阶段添加验证?更新-尝试了Paul的解决方案,但它不起作用。在脚本的顶部,我声明了!defineMUI_PAGE_CUSTOMFUNCTION_LEAVEvalidateDirectory!insertmacroMUI_P
我刚从NSIS2.51升级至NSIS3.0,主要是因为新版本supportsWindows10.对于我的安装程序,我使用的是ModernUserInterface(MUI).我使用一些自定义页面。根据documentation,我正在使用MUI_HEADER_TEXT宏在我的自定义页面函数中设置页眉上的文本,例如:[...]PagecustomInstallTypeLangStringPAGE_INSTALL_TYPE_TITLE${LANG_ENGLISH}"InstallationType"LangStringPAGE_INSTALL_TYPE_SUBTITLE${LANG_ENG
我有一个项目(带有子项目),我想为其生成多个NSIS安装程序可执行文件,而不是在单个NSIS安装程序中列出多个组件。这可能吗?或者我是否需要将我的代码组织到单独的项目中? 最佳答案 可以提供一个CMake属性,例如COMPONENT可以设置为一组预定义包名称中的值,例如:COMPONENT_1|COMPONENT_2|...COMPONENT_X包名称甚至可以是一个不对应于单个组件名称的名称,而是一组将添加到CPACK_COMPONENTS_ALL中的组件。如果COMPONENT等于ALL_COMPONENTS,则CPACK_COM
我正在按照论坛上的说明进行操作,但无法弄清楚问题出在哪里。我下载了.zip并将其解压缩。除了Docs之外还有4个文件夹(Contrib、Docs、Plugins、Unicode),我应该把其余的放在哪里?我从AccessControl/Plugins将.dll放到我的NSIS/Plugins文件夹中,其他.dll文件也在那里。但是其他两个文件夹不包含任何要放入NSIS/Include的.nsh或.nsi文件。问题出在哪里?我正在使用HMNISEdit,当我尝试编译它时提示无效命令。我试过这段代码,它编译了,但我不认为它做了什么......或者我使用了错误的命令。我需要在INSTDIR中
我如何通过NSIS2.46做到这一点?我知道这可能是个愚蠢的问题,但我到底该如何创建一个空目录并检查错误呢?我这样做:ClearErrorsCreateDirectory$R1${If}${Errors}DetailPrint"failed"MessageBoxmb_IconStop|mb_TopMost|mb_SetForeground"Cannotcreatefolder$R1"Abort${Else}DetailPrint"done"${EndIf}如果变量$R1是"c:\test"-完成"c:\con"-失败("con"-在Windows上保留)"qwer:\test2"-完成
我正在使用NSIS为程序创建安装程序,检测该程序是否已安装的最佳方法是什么?另外,由于我正在从autorun.inf运行安装程序,如果它找到已安装的副本,我可以立即退出安装程序吗?有更好的方法吗? 最佳答案 这个怎么样。我在一个旧的NSIS脚本中有这个。;ChecktoseeifalreadyinstalledReadRegStr$R0HKLM"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\""UninstallString"IfFileExists$R0+1NotInsta
我第一次尝试使用NSIS现代用户界面创建安装程序。我想知道如何添加一个选项(复选框)供用户选择在完成页面(安装程序的最后一个屏幕)上创建桌面快捷方式以及已经存在的“运行XXXX”选项。 最佳答案 如果您没有在完成页面上使用自述复选框,您可以使用它来执行您想要的任何操作:FunctionfinishpageactionCreateShortcut"$desktop\foo.lnk""$instdir\foo.exe"FunctionEnd!defineMUI_FINISHPAGE_SHOWREADME""!defineMUI_FINI
我似乎找不到任何有关如何使用NSIS复制目录的信息?我知道有一个文件命令,但是否有任何命令可以复制目录。 最佳答案 目录和文件的语法相同,除了您需要通过在末尾提供\来指定目录。如果指定的参数是目录,File命令复制目录。例如,你可以这样做:SetOutPath"outputPath"File"myDirectory\"#notebackslashattheend但这只会复制顶级目录。要递归地做,你有/r开关SetOutPath"outputPath"File/nonfatal/a/r"myDirectory\"#notebacksl
我有一个应用程序,它包含一个.exe、许多.dll和一些文件夹。我使用NSIS创建安装程序。它可以工作,但是当我安装该软件时,我没有看到我的应用程序中的所有文件夹。我需要做什么才能将我的应用程序中的所有文件夹捆绑到安装程序中?这是我此时设置数据源的代码:File"c:\MyProject\MyApp\*" 最佳答案 文档告诉我们File命令的/r参数包括所有子文件夹和文件。所以你会使用这样的东西:File/r"c:\MyProject\MyApp\*"文档的相关部分可以在这里找到:http://nsis.sourceforge.ne