这是我脚本的结尾。我希望使这段代码在每次运行时都附加数据。当前它覆盖文件。如果需要,我可以粘贴整个脚本。
Write-Host "Contents of ArrayPath:"
#$PathArray | ForEach-Object {$_}
$PathArray | % {$_} | Out-File "C:\SearchString\Output.txt"
答案 0 :(得分:2)
Out-File
有一个-Append
参数。只需修改您的代码以将其标记在末尾即可。
尽管如此,您的ForEach-Object
语句(%
符号)在管道中几乎没有用,并且不需要。这是因为您仅使用ForEach
循环来输出对象而没有任何修改。这正是管道默认情况下所做的,即将每个对象传递给下一个命令。
如果
Update-Help
已在本地运行,则也可以使用Get-Help about_pipelines
查看信息。
代替此:
$PathArray | % {$_} | Out-File "C:\SearchString\Output.txt" -Append
您可以这样做:
$PathArray | Out-File "C:\SearchString\Output.txt" -Append
[推荐] 您还可以消除对管道的全部需求,因为如果没有管道,使用管道效率较低。在没有管道或管道中每个管道左侧的情况下,可能要做的所有事情就是“向左过滤” (请参阅以下文章,详细了解为什么应该向左过滤 ,格式正确:Filtering Command Output in PowerShell):
Out-File -InputObject $PathArray -FilePath "C:\SearchString\Output.txt" -Append
最简单的故障排除方法是查看帮助文档。使用Get-Help
来检查所需的内容:参数集,可用参数,示例等。请确保运行Update-Help
以使详细文档在本地可用。要检查所有内容:
Update-Help
Get-Help Out-File -Full
有关帮助文档的更多信息:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/get-help?view=powershell-6
注意:此问题的另一个答案可以在这里找到,它使用>
和>>
符号:powershell append to output