internal/functions/utility/Join-DbaPath.ps1

function Join-DbaPath {
    <#
    .SYNOPSIS
        Performs multisegment path joins.
 
    .DESCRIPTION
        Performs multisegment path joins.
 
    .PARAMETER Path
        The basepath to join on.
 
    .PARAMETER Child
        Any number of child paths to add.
 
    .EXAMPLE
        PS C:\> Join-DbaPath -Path 'C:\temp' 'Foo' 'Bar'
 
        Returns 'C:\temp\Foo\Bar' on windows.
        Returns 'C:/temp/Foo/Bar' on non-windows.
    #>

    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true, Position = 0)]
        [string]
        $Path,

        [Parameter(ValueFromRemainingArguments = $true)]
        [string[]]
        $Child
    )

    return @($path) + $Child -join
    [IO.Path]::DirectorySeparatorChar -replace
    '\\|/', [IO.Path]::DirectorySeparatorChar

    $resultingPath = $Path
    if (($PSVersionTable.PSVersion.Major -ge 6) -and (-not $script:isWindows)) {
        $resultingPath = $resultingPath.Replace("\", "/")
    } else { $resultingPath = $resultingPath.Replace("/", "\") }

    foreach ($childItem in $Child) {
        $resultingPath = Join-Path -Path $resultingPath -ChildPath $childItem
    }

    $resultingPath
}