Format-* commands are built to format things for your viewing pleasure. They are not meant to pass usable objects along the pipeline - if you try to do anything with the results of a Format-* command, apart from sending it to Out-* commands like Out-String or Out-File, you will get gibberish.
Use Select-Object.
#View an array of strings (from name property)
Get-ChildItem | Select-Object -ExpandProperty name
#Write these strings to a file
Get-ChildItem | Select-Object -ExpandProperty name | Set-Content C:\temp\test.txt
In general, you should avoid the Format-* commands unless you have a specific goal in mind. For example, using them with Write-Verbose or with ShouldProcess messages for clarity. Just keep in mind you lose any ability to work with the data as objects once you use Format-*.
Cheers!