PowerShell:为什么"Get-Content <file> | Out-File -Append <file>"会陷入循环?



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

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

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

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

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

如果我中断循环并检查文件,我会看到初始内容一遍又一遍地重复。谁能解释为什么会发生这种情况?

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

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

最新更新