2017-05-16 67 views
3

下面的第一個示例是一個正常的靜態字符串被解析。第二個例子是我試圖做同樣的事情,但讓字符串動態解析實時。我需要知道如何在下面放置(($myparse gets evaluated))以便讓它在運行中解析$myparse的內容。我確定它是某種腳本塊,但我無法弄清楚是什麼類型的。在PowerShell中即時解析字符串的內容

下面的代碼正確地解析靜態字符串爲「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. 

回答

2

您正在查找ExpandString功能:

$ExecutionContext.InvokeCommand.ExpandString($myparse)