首页 > 解决方案 > 如何使用 NSIS 将子目录及其内容移动到另一个目录

问题描述

这是我第一次使用 NSIS,我想编辑一个脚本 NSIS 以允许我:

如果第一次安装 -> 在“C:\Users\ali.ait-mouhoub.ext\AppData”位置创建目录“Affaires”。

如果是更新(因此目录“Affaires”它已经存在于“C:\NOE”中)-> 将目录“Affaires”及其内容移动到“C:\Users\ali.ait-mouhoub.ext\AppData ”。

当前脚本在“C:\NOE”中创建目录“Affaires”。

你能帮我修改我的脚本以满足我的需要吗?

标签: nsis

解决方案


如果新旧位置都在同一个卷上,那么您可以使用Rename

Section
Rename "$InstDir\Stuff" "$InstDir\OldStuff"
SectionEnd

如果新位置可能在不同的卷上,那么您必须复制+删除:

!include LogicLib.nsh

Section
ClearErrors
CopyFiles /Silent "$InstDir\Stuff" "x:\Backup"
${If} ${Errors} 
  MessageBox MB_ICONSTOP "Unable to move!"
${Else}
  RMDir /R "$InstDir\Stuff"
${EndIf}
SectionEnd

推荐阅读