在PowerShell

时间:2017-05-16 07:38:46

标签: string powershell parsing variables

下面的第一个示例是正在解析的普通静态字符串。第二个例子是我尝试做同样的事情,但让字符串动态解析。我需要知道在(($myparse gets evaluated))下面放置什么才能让它在运行中解析$myparse的内容。我确定它是某种脚本块,但我无法弄清楚它是什么类型。

以下代码正确地将静态字符串解析为“Hello John Smith”并将其存储在$mysalutation中:

>$firstName = "John"
>$lastName = "Smith"
>$mysalutation = "Hello $firstName$(if($lastname) {" " + $lastName})."
>$mysalutation
Hello John Smith.

我想要做的是动态解析相同的字符串:

>$myparse = 'Hello $firstName$(if($lastname) {" " + $lastName}).'
>$myparse
Hello $firstName$(if($lastname) {" " + $lastName}).

>$firstName = "Jason"
>$lastName = "Bourne"
>$mysalutation = (($myparse gets evaluated))
>$mysalutation
Hello Jason Bourne.

1 个答案:

答案 0 :(得分:2)

您正在寻找ExpandString功能:

$ExecutionContext.InvokeCommand.ExpandString($myparse)