添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

I have a collection of objects with properties: ProductName and PartName. The content of collection is output to a file first:

$colProducts | sort-object ProductName | `
   Select-object ProductName PartName | `
   Format-Table -autosize ProductName, PartName | `
   Out-File myProducts.txt 

So far so good. However, I have trouble to append a text message to the result file like this:

Add-Content myProducts.txt "`nParts in more than one Product`n"

I found that the appended text is not readable at the end. One thing I notice is that the output of the first collection to a file is in Unicode, and the second one code (add-content) is in ASCII if only to a new file.

After this, I would like to continue to add the following information the same result file:

$colProducts | Group-object PartName | sort-object PartName | `
   Where-Object {$_.Count -gt 1 } | `
   Select-object ProductName PartName | `
   Format-Table -autosize ProductName, PartName | `
   Out-File myProducts.txt

The above codes will overwrite to the result file. I need to append to the file. Greatly appreciate help!

Update: It is good to know -Append option. How about Add-Content? It seems adding some unreadable chars to the file after Out-File from collection.

You don't need the back-ticks at the end of the lines, by the way. PowerShell lets you end a line with a pipe character. – dan-gph Mar 27 '14 at 0:22
$colProducts | Group-object PartName | sort-object PartName | `
  Where-Object {$_.Count -gt 1 } | `
  Select-object ProductName PartName | `
  Format-Table -autosize ProductName, PartName | `
  Out-File -Append myProducts.txt

And then look at this to get a feel for what you were encountering.

Essentially, Out-File (and Out-File -Append) gives you Unicode by default and Add-Content gives ASCII by default. My advice would be stick to the same command and you shouldn't have a problem.

And, of course, help Out-File -Detailed! Always check out the powershell examples because they help a great deal, not just to figure out their common usage, but to grok them as well.

$colProducts | sort-object ProductName | `
   Select-object ProductName PartName | `
   Format-Table -autosize ProductName, PartName | `
   Out-String | Add-Content myProducts.txt 
Add-Content myProducts.txt "`nParts in more than one Product`n"
$colProducts | Group-object PartName | sort-object PartName | `
   Where-Object {$_.Count -gt 1 } | `
   Select-object ProductName PartName | `
   Format-Table -autosize ProductName, PartName | `
   Out-File -Append myProducts.txt
        

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.

site design / logo © 2019 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2019.10.7.35131