File index is included at the top of the output file.
function concatFiles($outFile)
{
begin
{
$date = get-date
[string[]] $filelist = @() #empty string array
$filebreak = '-'*32
}
process
{
#for process-block vars, append data using +=
$_.fullname #or "$_", console - show file name
$filelist += $_.fullname
$filedata += "$filebreak`nfile: $_`n"
$filedata += gc $_.fullname | out-string #use out-string to restore linebreaks
}
end
{
$filecount = $filelist.length
"{0} files" -f $filecount #console - show file count
$fileheader = "{0}`n" -f $date.toString('MM-dd-yy HH:mm:ss')
$fileheader += "concat output file: {0}`n{1} files" -f $outFile, $filecount
$fileheader >> $outFile
$filelist >> $outFile
$filedata + $filebreak >> $outFile
}
}Concatenate all text files
gci c:\docs\* -inc *.txt -rec | concatFiles c:\temp\out.txt #powershell console output C:\docs\file1.txt C:\docs\file7.txt 2 files #file output 03-01-11 14:09:22 concat output file: c:\temp\out.txt 2 files C:\docs\file1.txt C:\docs\file7.txt -------------------------------- file: C:\docs\file1.txt file 1 ... -------------------------------- file: C:\docs\file7.txt file 7 ... --------------------------------
Concatenate files modified on Jan 1 2011 or later
$files = "*.htm","*.css","*.js"
gci c:\docs\* -inc $files -rec -force -ea silentlycontinue |
?{$_.lastwritetime -gt [datetime]'01-01-2011'} | concatFiles c:\temp\out.txt
No comments:
Post a Comment