gpt4 book ai didi

Powershell - 获取 Childitem 抢第一个结果

转载 作者:行者123 更新时间:2023-12-05 02:47:38 25 4
gpt4 key购买 nike

我制作的 powershell 脚本有问题。该脚本的目的是从各种资源、CMDB og 和其他系统收集信息,并将它们收集在一个组合报告中并发送。

除了一个一直困扰我的提示外,我的一切工作正常。在我的脚本中,我对获得的信息进行了大量解析和修整,在某些函数中我需要获取一些 XML 文件。示例:

$filter = "D:\WEC\Script\Rapportering\BigFixData\"
$xmlfiles = Get-ChildItem -path $filter -Filter "Bigfix_trimmed_JN.xml" -Recurse -Force |where {$_.psIsContainer -eq $false }
$xmlfile = $xmlfiles | ogv -OutputMode Single

总是只有一个文件可供抓取,这就是为什么我使用过滤器选项并给出特定名称的原因。上面的代码将触发一个弹出窗口,要求我选择文件。除了文件选择器弹出窗口外,它工作正常。我想摆脱它。

然后我将代码更改为:

$filter = "D:\WEC\Script\Rapportering\BigFixData\"
$xmlfiles = Get-ChildItem -path $filter -Filter "Bigfix_trimmed_JN.xml" | Select-Object -First 1 |where {$_.psIsContainer -eq $false }

这不再显示弹出窗口,但它似乎没有选择文件。导致稍后在脚本中出现 referenceObject 错误,因为它为 null。

脚本大约有 1000 行,我已将错误缩小到上面的命令。

谁能帮我找出我做错了什么?

提前致谢

最佳答案

  • 您的第二个命令缺少 -Recurse 开关,这可以解释为什么您没有得到任何结果。

  • 虽然目录不太可能与像“Bigfix_trimmed_JN.xml”这样特定的过滤模式相匹配,但更简洁、更快速的方法可以将匹配限制为PSv3+ 中的 files only 是使用 -File 开关(作为补充,还有一个 -Directory 开关)。

$xmlfile = Get-ChildItem $filter -Filter Bigfix_trimmed_JN.xml -Recurse -File |
Select-Object -First 1

您应该添加一个检查以查看是否没有 返回文件。

关于Powershell - 获取 Childitem 抢第一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64928035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com