I am trying to replicate the functionality of the "cat" command in Unix.
I would like to avoid solutions where I explicitly read both files into variables, concatenate the variables together, and then write out the concatenated variable.
I am trying to replicate the functionality of the "cat" command in Unix.
I would like to avoid solutions where I explicitly read both files into variables, concatenate the variables together, and then write out the concatenated variable.
Do not use
cat
...>
; it messes up the character encoding. Use:It took me hours to find this out.
I used:
This appended fine. I added the ASCII encoding to remove the nul characters Notepad++ was showing without the explicit encoding.
You can simply use
cat example1.txt, example2.txt | sc examples.txt
. You can surely concatenate more than two files with this style, too. Plus, if the files are named similarly, you can use:The
cat
is an alias forGet-Content
, andsc
is an alias forSet-Content
.Note 1: Be careful with the latter method - if you try to output to
examples.txt
(or similar that matches the pattern), PowerShell will get into an infinite loop! (I just tested this).Note 2: Outputting to a file with
>
does not preserve character encoding! This is why usingSet-Content
(sc
) is recommended.In
cmd
, you can do this:In PowerShell this would be:
While the PowerShell way would be to use gc, the above will be pretty fast, especially for large files. And it can be used on on non-ASCII files too using the
/B
switch.Since most of the other replies often get the formatting wrong (due to the piping), the safest thing to do is as follows:
I know you wanted to avoid reading the content of $SomeAdditionalFile into a variable, but in order to save for example your newline formatting i do not think there is proper way to do it without.
A workaround would be to loop through your $SomeAdditionalFile line by line and piping that into your $YourMasterFile. However this is overly resource intensive.
If you need to order the files by specific parameter (e.g. date time):