我开始使用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)
。
我试过这种格式,但它不起作用。
答案 0 :(得分:0)
我“认为”这就是你所追求的:
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中,相等比较opertors为-eq
,-ieq
和-ceq
。