gpt4 book ai didi

variables - powershell 将 ps1 脚本的输出分配给变量

转载 作者:行者123 更新时间:2023-12-01 09:05:50 26 4
gpt4 key购买 nike

让我开始,我对 powershell 和编程非常陌生。我有一个 powershell 脚本,它接受一些参数并输出一个值。
脚本的结果将类似于 9/10,其中 9 将是节点总数中事件的数量。我想将输出分配给一个变量,以便我可以根据该值调用另一个脚本。

这是我尝试过的,但不起作用:

$active = (./MyScript.ps1 lb uid **** site)  

我还尝试了以下似乎将变量分配给空字符串的方法
$active = (./MyScript.ps1 lb uid **** site | out-string)

在这两种情况下,它们都会运行并立即给我值,而不是将其分配给变量。当我调用变量时,我没有得到任何数据。

最佳答案

我会接受 PowerShell 面向对象的特性,而不是输出像“9/10”这样的字符串,而是创建一个具有 NumActiveNodes 和 TotalNodes 等属性的对象,例如在您的脚本输出中,如下所示:

new-object psobject -Property @{NumActiveNodes = 9; TotalNodes = 10}

当然,用动态值代替 num active 和 total nodes。请注意,未捕获的对象将自动出现在脚本的输出中。然后,如果这是您的脚本唯一输出,您可以这样做:
$obj = .\MyScript.ps1
$obj.NumActiveNodes
9
$obj.TotalNodes
10

对于那些使用脚本输出的人来说,它会更好。事实上,输出在某种程度上是自我记录的,例如:
C:\PS> .\MyScript.ps1

NumActiveNodes TotalNodes
-------------- ----------
9 10

附言StackOverflow 什么时候开始在格式化 PowerShell 脚本方面如此糟糕?

关于variables - powershell 将 ps1 脚本的输出分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880498/

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