![](/img/trans.png)
[英]How to pass argument to a function from a pipe output of another using powershell
[英]How to pass the function output to another function in powershell?
第一次使用PowerShell。
我试图找到一种方法将函数输出用作另一个函数的输入。
例如,
Function TK
{
param ([int]$OTK)
$TK = $OTK * 2
write-host "TK $TK"
}
Function MAT
{
param ([int]$OMAT)
$MAT = $OMAT * $TK /5
write-host "MAT $MAT"
}
这个想法是创建一个脚本或一个模块来独立调用不同的函数。 它从第一个函数开始,并将输出作为输入传递给另一个函数。 这些函数可以独立运行,也可以顺序运行。
任何例子?
函数的所有输出都通过管道传递。 这就是所有的输出。 您正在使用write-host
,它仅用于在控制台本身上显示。 使用Write-Output
或仅将命令写出而不使用它。 我还建议你看看about_functions 。
不完全确定问题是什么,但所问的标题我会做这样的事情。
Function TK
{
param ([int]$OTK)
$OTK * 2
}
Function MAT
{
param ([int]$OMAT, $TK)
$OMAT * $TK /5
}
行$OMAT * $TK /5
也可以读作Write-Output $OMAT * $TK /5
。 它们在功能上是相同的。
我为第二个值$TK
的MAT
函数添加了另一个参数。 您可以使用global
关键字声明变量,但这很简洁。 这将是一个示例函数调用,它输出结果10
MAT 5 (TK 5)
表达式(TK 5)
被评估,然后作为函数MAT
的第二个值发送。 您也可以使用变量作为中间人,但除非您需要多次使用函数调用输出,否则这将是多余的。
$result = TK 5
MAT 5 $result
您还可以像任何 cmdlet 一样在彼此内部调用函数。 在调用函数之前声明它很重要。
Function MAT
{
param ([int]$OMAT)
$OMAT * TK /5
}
注意上面的“TK”代码将调用函数TK
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.