When in doubt, read the documentation. The Import-Csv cmdlet accepts an array of path strings as input, so all you need to do (assuming that all your CSVs have the same fields) is something like this:
$src = 'C:\path\to\input1.csv', 'C:\path\to\input2.csv', ...
$dst = 'C:\path\to\output.csv'
Import-Csv $src | Export-Csv $dst -NoType
If you want an additional column with the path of the source file you need some additional steps, though:
$src | ForEach-Object {
$path = $_
Import-Csv $path | Select-Object *,@{n='Path';e={$path}}
} | Export-Csv $dst -NoType
Get-Content ...| Set-Content ...might "work", except that if it's a CSV in standard format (first line is headers) he'll end up with a record in the middle that duplicates his headers, e.g., Name="Name" Address="Address" etc. His solution using+=is better.-PassThruonAdd-MemberorSelect-Objectto make a calculated property. @Bunion Here is a one liner that adds that property:($(Import-Csv "PATH1" | Add-Member -Name "SourcePath" -Value "PATH1" -MemberType NoteProperty -PassThru) + $(Import-Csv "PATH2" | Add-Member -Name "SourcePath" -Value "PATH2" -MemberType NoteProperty -PassThru)) | Export-CSV C:\test.csv