在 PowerShell 中使用 for 循环的条件逻辑

Conditional logic using for loops in PowerShell

我开始使用 PowerShell 并使用 "For Loop" 创建条件逻辑。当我运行脚本时,没有结果出来。但是,如果我用一个公式替换这三个函数,它就会起作用。 这是脚本:

for ($OTK = 1; $OTK -le 10; $OTK++)
{
if ($OMAT = 6)
{
    if ($OMAF = 7)
    {
        function TK
        {
            param ([INT]$OTK)
            $OTK * 2
        }
        function MAT
        {
            param ([INT]$OMAT, $TK)
            $TK * $OMAT /5
        }
        function MAF
        {
            param ([INT]$OMAF,$MAT)
            $MAT * $OMAF /5
        }
    }
    Write-Output $MAF
  }
}

我的问题是:

1、如何让这个循环起作用?

2、如何独立于另一个源(ps1或psm1)调用这些函数?

3、是否可以将这两个 if 语句组合起来? 喜欢if ($OMAT = 6 -and $OMAF = 7).
我试过这种格式,但它不起作用。

我"think"这就是你想要的:

function TK
{
    param([int]$OTK)
    $OTK * 2
}

function MAT
{
    param([int]$OMAT, $TK)
    $TK * $OMAT / 5
}

function MAF
{
    param([int]$OMAF,$MAT)
    $MAT * $OMAF / 5
}

$OMAT = 6
$OMAF = 7

for ($OTK = 1; $OTK -le 10; $OTK++)
{
    if ($OMAT -eq 6 -and $OMAF -eq 7)
    {
        MAF $OMAF (MAT $OMAT (TK $OTK))
        # (TK $OTK) is the output of TK that is fed into
        # MAT which takes $OMAT and the output of TK, that is fed into
        # MAF which takes $OMAF and the output of MAT
    }
}

在您的原始脚本中,您定义了函数但从不调用它们。正如它在评论中指出的那样,您使用 = 进行比较和赋值。在 PowerShell 中,相等比较运算符是 -eq-ieq-ceq.