我想进行参数变量评估。要评估的变量名称由字符串连接构成 - 来自名称空间部分和在变量中定义的名称部分。示例:env:$var
,其中$var
的值为"OS"
。但是,在使用表达式
${env:OS}
给出预期值Windows_NT
,即构造
$var="OS"
${env:$var}
是一个空值表达式。
我并没有真正参与环境变量的价值(但这是最简单的例子,我能找到)。我真正想要的是通过${c:<filename>}
构造引用文件的内容。我想执行几个有条件的文件内字符串替换,并且我想使用类似于此的构造:
<identify files in a foreach>
${c:<filename>} -replace 'this', 'that' > ${c:<new filename>}
为实现这一点,我需要<filename>
作为迭代器变量的值。
如果$var
的值为OS
,如果我希望以下表达式的值为...
,那么Windows_NT
的值是什么?
${env:...var...}
答案 0 :(得分:0)
在Get-ChildItem
PSDrive上使用env:
并展开结果的Value
:
(ls env:$var).Value
编辑:正如使用Get-Content
在评论中建议的@PetSerAl是一种更优雅的方法:
(cat env:$var)