【问题标题】:PowerShell outputs XML data on the end of executionPowerShell 在执行结束时输出 XML 数据
【发布时间】:2019-12-26 11:56:07
【问题描述】:

当我通过使用Get-Content 读取 XML 文件并将其转换为 XML 并将新节点插入其中来解析 xml 文件时,PowerShell 会回显新创建节点的内容。为什么 PowerShell 会这样做?

$proj = [xml](Get-Content $project.AbsolutePath)

$element = $proj.CreateElement("Version");
$element.InnerText = "1.0.0";
$proj.Project.PropertyGroup.AppendChild($element);

Write-Host "OK"

在那之后真的没有其他代码了。但它仍然呼应了以下文字:

好的 #文本 ----- 1.0.0

我尝试将变量$element 设置为$null,以防万一有一些奇怪的全局变量我不应该碰。我什至告诉脚本在脚本结束时退出。 当我绕过插入新节点的执行时,脚本末尾不会写入额外的文本。

【问题讨论】:

  • AppendChild() 返回新节点,PowerShell 正在显示该节点,因为它不知道如何处理它。这样的事情会阻止:$proj.Project.PropertyGroup.AppendChild($element) | Out-Null
  • 除了boxdog 提到的之外,sequence 是无序的,因为Write-Host 直接进入屏幕,而输出流稍微延迟以查看是否还有更多可以与之分组的。直接=right freaking NOW。间接 = slight delay.
  • PowerShell 延迟输出以便能够在同一标题下进行汇总,这具有不总是保持顺序的副作用。否则按照@boxdog 的建议进行操作。
  • 谢谢你们!你让我大吃一惊! @boxdog 如果您可以将其写为答案,我可以给您一个赞成票并将该线程标记为已关闭:)

标签: xml powershell powershell-4.0


【解决方案1】:

AppendChild() 返回新节点,PowerShell 正在显示该节点,因为它不知道如何处理它。这样的事情会阻止:

$proj.Project.PropertyGroup.AppendChild($element) | Out-Null

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2021-11-15
    • 2022-12-18
    • 2012-01-14
    相关资源
    最近更新 更多