添加内容未追加到最后一个输出

时间:2018-10-26 15:22:33

标签: powershell

我想将输出附加到最后一个控制台输出。

  $r = write-output "$server - $db"
  $r
  Add-Content $r -Value " : Success!"

本质上,我试图获取此输出:

  

服务器-db:成功!

在MS文档上,https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/add-content?view=powershell-6

示例假定正在使用文件。有没有一种方法可以追加到控制台输出?

如果我使用-PassThru,它将在我不希望的下一行输出

  

服务器-数据库

     

:成功!

2 个答案:

答案 0 :(得分:4)

Add-Content专门用于将内容添加到外部资源(例如文件)。如果您只想追加到字符串,则可以执行以下操作:

$r = "$Server - $DB"
$r
$r = $r + " : Success"
$r 

或者您可以像这样使用字符串插值:

$r = "$r : Success"

默认情况下,您所做的任何未发送到其他地方的操作都会打印到控制台,因此,如果您唯一的目标是获取变量,则无需使用Write-Output或更新变量在屏幕上,您可以将其单独放在一行上:

"$r : Success"

如果您的目标是在控制台中写入一些文本,然后在同一行中追加一些文本,则可以使用Write-Host

$r = "$Server - $DB"
Write-Host $r -NoNewLine
Write-Host " : Success"

答案 1 :(得分:1)

您需要做的就是连接字符串。

以下示例应为您提供所需的输出:

$r = write-output "$server - $db"
$r += " : Success!"
$r