Search code examples
windowsinstallationnsis

Copy a directory using NSIS .


I can't seem to find any information about how to copy a directory using NSIS ?, i know there is a file command but is there any command to copy a directory .


Solution

  • The syntax is same for both directory and file, except that you need to specify a directory by providing a \ at the end. File command copies the directory if the specified argument is a directory. For eg, you can do:

    SetOutPath "outputPath"
    File "myDirectory\" #note back slash at the end
    

    But that copies only the top level directory. To recursively do it, you have /r switch

    SetOutPath "outputPath"
    File /nonfatal /a /r "myDirectory\" #note back slash at the end
    

    which copies the contents of myDirectory (but not myDirectory folder itself). /nonfatal ignores without an error if there is no particular directory. /a copies file attributes as well. /x switch is used to exclude files.

    Otherwise,

    SetOutPath "outputPath\myDirectory"
    File /nonfatal /a /r "myDirectory\" #note back slash at the end
    

    copies all the contents of myDirectory including myDirectory folder to outputPath.