【发布时间】:2019-07-30 12:10:15
【问题描述】:
鉴于我有:
$a = "world"
$b = { write-host "hello $a" }
如何获取脚本块的解析文本,它应该是包含 write-host 的 entre 字符串:
write-host "hello world"
更新:补充说明
如果你只是打印$b,你会得到变量而不是解析值
write-host "hello $a"
如果您使用& $b 执行脚本块,您会得到打印的值,而不是脚本块的内容:
hello world
这个问题是寻找一个包含脚本块内容和评估变量的字符串,即:
write-host "hello world"
【问题讨论】:
-
你有一个 scriptblock 并且你需要调用/运行这个 scriptblock。 [grin] 简单地调用保存脚本块的 $Var 将给出文字内容,而不是运行它。你可以这样运行它...
Invoke-Command -ScriptBlock $boutput =hello world -
我不相信这是重复的,因为我没有执行脚本块 - 我想要一个带有评估变量的语法字符串
-
@Lee_Dailey - 从答案中可以看出,您可以使用
$ExecutionContext.InvokeCommand.ExpandString($b) -
@alasairtree - 哈!我学到了一些新东西! [grin] 我会尽快删除这条评论 - 并立即删除我的错误评论以避免混淆。
标签: powershell