Private/Backup-Files.ps1

function Exit-Backup-Files
{
    ##############################################################################
    #.SYNOPSIS
    # Handles a proper exit from Backup-Files function.
    #
    #
    #.DESCRIPTION
    # Robocopy exit codes 1 & 3 are considered as successful.
    # Robocopy exit code 1 if default log directory is used.
    # Robocopy exit code 3 if custom log directory is used.
    #
    #.PARAMETER RobocopyExitCode
    # Robocopy exit code
    #
    # Robocopy -OPTIONS
    # $lastExitCode = $LASTEXITCODE
    # Exit-Backup-Files -RobocopyExitCode $lastExitCode
    ##############################################################################

    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true)]
        [int]$RobocopyExitCode
    )
    
    if(($RobocopyExitCode -eq 1) -or ($RobocopyExitCode -eq 3)) 
    {
        # Robocopy exit codeс 1 if default log directory is used
        # Robocopy exit codeс 3 if custom log directory is used
        Write-Output "Back up files finished."
        Exit 0
    }
    else
    {
        Throw "Unexpected 'Robocopy exit code $RobocopyExitCode'. (Successful exit codes are 'Robocopy exit code 1' and 'Robocopy exit code 3')"
    }  
}