首页 Java 格式化包含哈希表值的Powershell字符串

格式化包含哈希表值的Powershell字符串

答案可能很简单,但我花了半个小时仍然无法解决问题. 假设我有以下哈希表: $hash = @{face=Off;} 我试图做的是,沿着一些其他字符串元素输出“face”的值. 这有效: Write-Host Face $hash[face]= Face Off 但是,这不是: Write-Host Face/$hash[face]= Face/S

答案可能很简单,但我花了半个小时仍然无法解决问题.

假设我有以下哈希表:

$hash = @{face='Off';}

我试图做的是,沿着一些其他字符串元素输出“face”的值.

这有效:

Write-Host Face $hash['face']
=> Face Off

但是,这不是:

Write-Host Face/$hash['face']
=> Face/System.Collections.Hashtable[face]

不知何故,缺少空间已经影响了运算符的优先级 – 现在它正在将$hash作为一个字符串进行评估,之后是连接[face].

试图解决这个优先级问题,我试过:

Write-Host Face/($hash['face'])
=> Face/ Off

我现在有一个我不想要的额外空间.
这有效,但我不希望额外的行重新分配:

$hashvalue = $hash['face']
write-host Face/$hashvalue
=> Face/Off

知道如何让它作为单线工作吗?

解决方法

当然,使用子表达式:

Write-Host Face/$($hash['face'])

通常,如果我需要使用Write-Host精确控制空白,我只使用一个字符串:

Write-Host "Face/$($hash['face'])"

是的,在这种情况下,您需要再次使用子表达式,但更多是因为您根本无法在字符串中包含$foo [‘bar’]之类的表达式;-)

顺便说一句,$hash.face的工作原理同样适用于视觉混乱.

本文来自网络,不代表云浮站长网立场。转载请注明出处: https://www.0766zz.com/html/kaifa/java/20200905/10045.html
上一篇
下一篇

作者: dawei

【声明】:云浮站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部