get-MultipleXMLFiles.ps1
|
function get-MultipleXMLFiles { Param ( [Parameter(Mandatory = $true)] $fileName, [Parameter(Mandatory = $true)] $baseName, [Parameter(Mandatory = $true)] $logFolderPath ) out-logfile -string "Start Get-MultipleXMLFiles" $rootPath = $logFolderPath + "\" + $baseName + "\" $fileName = $baseName+$fileName+".xml" out-logfile -string ("Root Path: "+$rootPath) out-logfile -string ("File Name: "+$fileName) $files = @(Get-ChildItem -path $rootPath -name $fileName -Recurse) out-logfile -string ("File Count: "+$files.count.tostring()) $data = @() foreach ($file in $files) { out-logfile -string ("Processing file: "+$file) $importFile = $rootPath + $file out-logfile -string ("Processing import file: "+$importFile) try { $data += Import-Clixml -Path $importFile -errorAction STOP } catch { out-logfile -string "Unable to obtain the contents of the XML file." out-logfile -string $_ -isError:$TRUE } out-logfile -string ("Processing entry count: "+$data.Count.tostring()) } $returnList = [System.Collections.Generic.List[psCustomObject]]$data out-logfile -string ("Return list imported count: "+$returnList.Count.tostring()) $returnList = $returnList | Sort-Object -Property ID,Address -Unique out-logfile -string ("Sorted return list imported count: "+$returnList.Count.tostring()) out-logfile -string "End Get-MultipleXMLFiles" return $returnList } |