2017-05-16 12 views
3

最初の例は、解析される通常の静的な文字列です。 2番目の例では、同じことをやろうとしていますが、動的にパースする文字列を取得しています。 $myparseの内容をオンザフライで解析するには、下に(($myparse gets evaluated))の場所に何を入れるべきかを知る必要があります。私はそれが何らかのスクリプトブロックだと確信していますが、私はどのような種類のものか分かりません。PowerShellでオンザフライで文字列の内容を解析します。

次のコードが正しく$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)