如何在 powershell 中的 1 个文本文件中输出 2 个命令

如何在 powershell 中的 1 个文本文件中输出 2 个命令

大家好,

我一直在浏览问答,但找不到任何方法来实现这一点。基本上,我想在 1 个文本文件中获取 2 个语法的结果。

这是 XML 的一部分:

<JOB PRO_JOB="D6C1608493" XMLMODE="REPORT">

<SAMPLE CUID="0001347496" SAMPLETYPE="OTHER" SAMPLEIDENT="1608493-2" SAMPLETIME="18/09/2016 2300">

    <SCHEME SCH_CODE="/CSA" SCHEMETYPE="ANALYS">


        <ANALYTE ANALYTECODE="S" ANALYTENAME="S" TAG="FEED1" NUMERICVALUE="1.019999980926514" ROUNDEDVALUE="1.02">
        </ANALYTE>
        </SCHEME>
</SAMPLE>

因此,当我尝试在 powershell 中执行命令时:$doc.job.sample.scheme.analyte它给了我 Analyte 的结果,这很好,但我还想获取结果以$doc .job.sample在 1 个输出文本文件中获取命令的结果。能够输出它,但只能使用 1 个命令。

附带问题:如何在执行时仅显示 SAMPLETIME 值$doc1.job.sample

答案1

似乎您缺少一个结束标记<JOB>,因此我假设文档末尾有一个结束标记。我还假设您以类似以下方式加载 XML:

$doc = [xml](Get-Content '.\samples.xml')

我猜你将信息输出到文件的方式是使用重定向运算符>。正如你可能发现的那样,这会抹去目标文件的任何现有内容。但是,你可以使用将内容附加到文件>>。因此,你可能会做这样的事情:

$doc.JOB.SAMPLE.SCHEME.ANALYTE > outfile.txt
$doc.JOB.SAMPLE >> outfile.txt

如果要获取属性的值,只需将该属性视为其所属元素对象上的另一个子对象即可。这会将您想要的内容打印到屏幕上;您可以根据需要重定向它:

$doc.JOB.SAMPLE.SAMPLETIME

相关内容