.net 如何使用IO.File附录行

.net 如何使用IO.File附录行,.net,powershell,.net,Powershell,我得到一个错误: $text = "Hello","World" [IO.File]::AppendAllLines( "C:\test.txt", $text, [Text.Encoding]::Default ) 如何修复它?WriteAllines在使用相同参数时效果很好,但此方法有什么问题?Powershell在使用$text时遇到问题,因为类型是对象[],但该方法要求字符串可枚举 首先将其强制转换

我得到一个错误:

$text = "Hello","World"
[IO.File]::AppendAllLines(
    "C:\test.txt", 
    $text, 
    [Text.Encoding]::Default
)

如何修复它?WriteAllines在使用相同参数时效果很好,但此方法有什么问题?

Powershell在使用
$text
时遇到问题,因为类型是
对象[]
,但该方法要求字符串可枚举

首先将其强制转换为字符串[]:


[string[]$text=“你好”,“世界”
#或
[IO.File]::附录所有行(
“C:\test.txt”,
[string[]]$text,
[文本.编码]::默认值
)

为什么要用它来代替多行字符串的
>
?还是添加内容?@PanagiotisKanavos每当我选择.NET方法而不是PS内置方法时,主要是为了性能,有时是为了附加功能。@marsze在这种情况下,它们做的事情是相同的。至于性能,Powershell管道中的每个步骤都在其自己的线程上运行。如果您在Powershell中循环,执行将很慢。如果你创建一个管道,它将是很多faster@marsze在本例中,在前面步骤中可用的行中添加行意味着脚本不必等到所有内容都完成后再添加结果。@PanagiotisKanavos I只是做一个一般性的评论。我不是OP。至于性能,有很多变化,所以在每种情况下都非常不同。最好的方法总是简单地测试它。我记得Don Jones的一篇精彩演讲。我想,(str,str)自动是字符串数组。谢谢。@Danny默认情况下,Powershell中的每个数组都是
object[]
'Cannot find an overload for "AppendAllLines" and the argument count: "3".'