PowerShell:为什么“Get-Content <file> | Out-File -Append <file>”进入循环?</file> </file>

时间:2013-09-22 14:15:25

标签: powershell

我理解为什么以下内容会截断文件的内容:

Get-Content <file> | Out-File <file>

这是因为Out-File首先运行,并且在Get-Content有机会读取之前清空文件。

但是当我尝试上述变体时,它会进入一个循环:

Get-Content <file> | Out-File -Append <file>

如果我打破循环并检查文件,我会看到初始内容一遍又一遍地重复。任何人都可以解释为什么会这样吗?

我原本希望文件的内容重复两次而不是进入循环。

1 个答案:

答案 0 :(得分:3)

Get-Content逐行为您提供内容,Append从管道添加1行到文件末尾。因此,对于您遇到的每一行,都会在最后添加一行。所以 - 它永远不会结束。如果您希望将内容重复两次,请将整个文件读入变量,将其附加到自身,然后将结果输出到文件中。