1

我有一个项目来创建一个脚本来处理我们的 Lync 配置 - 尽量保持它的模块化。我认为最好将每个脚本文件保存在自己的目录中,并使用其自己的“scopedConfig”和“centralXML”以及全局有用的标签。

我遇到的问题是尝试使用 Get-content 连续导入 2 个 XML 文件时。

我的代码是:

# Import CentralConfig
[xml]$centralXML = Get-content ".\centralConfig.xml"

# Import ScopedConfig
[xml]$scopedXML = Get-content ".\ExecutionResources\ScopedConfigfiles\HostConsole\config.xml"

我正在使用以下内容测试成功导入:

"------------------"
"------------------"
$centralXML
"------------------"
$scopedXML
"------------------"
"------------------"

结果和问题所在是输出:

------------------
------------------
Global_ConfigRoot
-----------------
Global_ConfigRoot
------------------

------------------
------------------

我希望两个 XML 的根节点作为输出,而不是我只得到第一个的根节点。如果我将其交换为第一个 $scopedXML - 我只得到 $scopedXML 根节点,而从 $centralXML 什么也没有。

需要注意的一件有趣的事情是,如果我将第二个 XML 传递给 Get-member - 您通常希望在其中看到所有与 XML 相关的东西及其属性,我会得到一大堆空白:

------------------
------------------
Global_ConfigRoot
-----------------
Global_ConfigRoot
------------------














































------------------
------------------

我以前从来没有遇到过,有人有什么建议吗?

(PS尽量遵守发帖规则,如果有什么问题请告诉我这是我第一次在这里发帖)

4

1 回答 1

0

函数、cmdlet 或脚本只能返回 AN 对象。如果你通过调用这两个变量返回多个,它实际上返回一个object[]包含两个项目的数组(+你打印的行)。对象未触及,只是添加到此集合中。

现在,当您的脚本输出(显示)返回的对象时,它会将其格式化为表格,因为里面有多个对象。一个表只能包含 1 个标题(列名),当显示一个数组时,它从第一项中获取列(属性),在这种情况下$centralxml。这就是为什么你得到 2 列:xml 和服务器。

如果你想将它们分开,你必须告诉脚本在单独的表格中格式化它们。前任:

# Import CentralConfig
[xml]$centralXML = Get-content ".\test.xml"

# Import ScopedConfig
[xml]$scopedXML = Get-content ".\test2.xml"

$centralXML | Format-Table
$scopedXML | Format-Table
于 2013-01-21T15:26:00.053 回答