PowerShell调用Invoke-RestMethod获取RSS Feed后拼接Title属性异常如何解决
问题原因
该错误是PowerShell字符串插值的语法规则导致的:在双引号包裹的字符串中,默认只会解析$开头的独立变量,变量后续的.属性操作不会被自动解析,会被当做普通文本直接输出,因此你最终得到的是$_变量的类型名拼接.Title文本,而不是Title属性的实际值。
正确写法
你可以选择以下任意一种方案修改代码:
方案1:使用子表达式包裹属性调用(最常用)
在字符串中用$()包裹需要完整解析的表达式:
$feed = Invoke-RestMethod https://www.muddycolors.com/feed/ $feed | ForEach-Object {"Article Name is: $($_.Title)"}
方案2:使用字符串拼接
拆分字符串和属性取值,用+拼接两部分内容:
$feed = Invoke-RestMethod https://www.muddycolors.com/feed/ $feed | ForEach-Object {"Article Name is: " + $_.Title}
方案3:使用格式化运算符
用-f运算符把属性值填充到字符串占位符中:
$feed = Invoke-RestMethod https://www.muddycolors.com/feed/ $feed | ForEach-Object {"Article Name is: {0}" -f $_.Title}
内容的提问来源于stack exchange,提问作者Netmano93
相关产品推荐
相关产品推荐

