繁体   English   中英

构造一个字符串参数为 function - powershell

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM