如果您尝试使用Invoke-Expressioncmdlet,则有9/10次,有更好的方法.动态构建命令的参数?使用参数数组.构建cmdlet的参数?使用splatting与数组或哈希表.你的命令在它的路径中有空格?使用call运算符(&).
这似乎是开放式的,但它Invoke-Expression是一个易于访问的cmdlet,答案几乎总是永远不会使用它.但是cmdlet存在是有原因的,并没有被弃用,并且大多数批评它的使用状态类似于"它几乎从来都不是正确的答案",但从未说明何时可以使用它.在什么情况下可以使用Invoke-Expression?或者说它不那么公开,如何Invoke-Expression设计使用?
说我有JSON喜欢:
{
"a" : {
"b" : 1,
"c" : 2,
}
}
Run Code Online (Sandbox Code Playgroud)
现在很ConvertTo-Json乐意创造PSObjects出来.我想访问我能做的项目$json.a.b并得到1 - 很好的嵌套属性.
现在,如果我有字符串"a.b",问题是如何使用该字符串访问该结构中的相同项目?似乎应该有一些特殊的语法我缺少像&动态函数调用,因为否则你必须自己Get-Member反复使用我期望的解释字符串.
powershell ×2