我理解为什么以下内容会截断文件的内容:
Get-Content <file> | Out-File <file>
这是因为Out-File首先运行,并且在Get-Content有机会读取之前清空文件。
但是当我尝试上述变体时,它会进入一个循环:
Get-Content <file> | Out-File -Append <file>
如果我打破循环并检查文件,我会看到初始内容一遍又一遍地重复。任何人都可以解释为什么会这样吗?
我原本希望文件的内容重复两次而不是进入循环。
答案 0 :(得分:3)
Get-Content逐行为您提供内容,Append从管道添加1行到文件末尾。因此,对于您遇到的每一行,都会在最后添加一行。所以 - 它永远不会结束。如果您希望将内容重复两次,请将整个文件读入变量,将其附加到自身,然后将结果输出到文件中。