追加文件的脚本

时间:2018-07-27 21:38:56

标签: powershell

这是我脚本的结尾。我希望使这段代码在每次运行时都附加数据。当前它覆盖文件。如果需要,我可以粘贴整个脚本。

Write-Host "Contents of ArrayPath:"
#$PathArray | ForEach-Object {$_}
$PathArray | % {$_} | Out-File "C:\SearchString\Output.txt"

1 个答案:

答案 0 :(得分:2)

Out-File有一个-Append参数。只需修改您的代码以将其标记在末尾即可。

尽管如此,您的ForEach-Object语句(%符号)在管道中几乎没有用,并且不需要。这是因为您仅使用ForEach循环来输出对象而没有任何修改。这正是管道默认情况下所做的,即将每个对象传递给下一个命令。

  

有关管道的更多信息:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_pipelines?view=powershell-6

     

如果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