3

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

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

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

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

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

如果我打破循环并检查文件,我会看到初始内容一遍又一遍地重复。谁能解释为什么会这样?

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

4

1 回答 1

3

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

于 2013-09-22T14:21:37.903 回答