PowerShell : Merge files with a particular extension
Hello,
Voici une fonction powershell vous permettant de regrouper/merge de tous les fichiers portant une extension particulière.
$source="C:\"
$extenstion ="*.csv"
$outputFile = "MyMergeFile.csv"
$blockTerminator = "ENDOFFILE"
function mergeFile ($source, $extenstion, $outputFile, $blockTerminator)
{
[System.IO.DirectoryInfo]$directoryInfo = New-Object System.IO.DirectoryInfo($source);
$rgFiles = $directoryInfo.GetFiles($extenstion);
$builder = New-Object System.Text.StringBuilder;
foreach ($fileInfo in $rgFiles)
{
[System.IO.FileStream]$fReader = $fileInfo.OpenRead();
if (-not ($fileInfo -eq $null))
{
write $fileInfo.Name;
$reader = New-Object System.IO.StreamReader($fReader);
$builder.AppendLine($reader.ReadToEnd());
$builder.AppendLine($blockTerminator);
}
}
if (-NOT $source.EndsWith('\'))
{
$source = $source + '\';
}
$outputFile = $source + $outputFile;
[System.IO.FileStream]$fWriter = New-Object System.IO.FileStream($outputFile, [System.IO.FileMode]::OpenOrCreate);
$writer = New-Object System.IO.StreamWriter($fWriter);
$writer.Write($builder.ToString());
$writer.Flush();
$writer.Close();
}
mergeFile $source $extenstion $outputFile $blockTerminator

