[英]Construct a string parameter to function - powershell
我想知道如何即时构造一个字符串作为 function 的参数? 例如说我有一个 function 之类的
function MyFunc
{
Param
(
[Parameter(mandatory=$true)] [string] $myString,
[Parameter(mandatory=$true)] [int] $myInt
)
Write-Host ("Param 1 is {0}" -f $myString)
Write-Host ("Param 2 is {0}" -f $myInt)
}
我如何在动态构建第一个字符串参数时调用它,例如
$myName = "Casper"
$myInt=7
MyFunc "Name is " + $myName $myInt
我尝试将 {} 放在第一个“位”周围
MyFunc {Name is " + $myName} $myInt
这然后错误地打印出来
Param 1 is "Name is "+$myName
Param 2 is 7
我想要它打印的是
Param 1 is "Name is Casper"
Param 2 is 7
我知道一个更好的方法是先设置字符串,
$pm1 = "Name is " + $myName
并致电 function MyFunc $pm1 $myInt
但我只是想知道它是如何即时完成的。 如何构造字符串并将其作为第一个参数传递给 function 调用? 希望这很清楚。
谢谢
作为一般经验法则,您始终可以使用子表达式运算符$(...)
或分组运算符(...)
将任何复杂表达式嵌套在单独的管道中:
MyCommand $("complex",(Get-Something),"argument","expression" -join '-')
但在您的特定情况下,我们不需要它 - 您只需将变量表达式$myName
放在字符串文字中, PowerShell 将自动评估并扩展其值:
MyFunc "Name is $myName" $myInt
如果变量表达式后跟一些字符,否则这些字符将构成变量路径的有效部分,请使用大括号{}
作为限定符:
MyFunc "Name is ${myName}" $myInt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.