【发布时间】:2016-09-01 09:56:00
【问题描述】:
我正在尝试打印出 Microsoft 更新热修复 URL 并更改它们
$link=Get-MSHotfix|Where-Object {$_.Installedon -gt ((Get-Date).Adddays(-20000))}|Select-Object -Property KBArticle
foreach($line in $link){
[String]$line = $line -replace 'http://support.microsoft.com/?kbid=','https://support.microsoft.com/en-us/kb/'
[String]$line
}
我有问题,因为它像这样打印出来并且没有替换:
@{KBArticle=http://support.microsoft.com/?kbid=3045992}
@{KBArticle=http://support.microsoft.com/?kbid=3045999}
@{KBArticle=http://support.microsoft.com/?kbid=3046017}
@{KBArticle=http://support.microsoft.com/?kbid=3046359}
@{KBArticle=http://support.microsoft.com/?kbid=3046737}
如果我只打印它而不使用 -replace,它看起来没问题。
我正在尝试获取知识库文章的完整 URL
我正在尝试创建一个脚本,如果可能的话,将打印出所有带有链接和名称的热修复程序
谢谢
【问题讨论】:
-
你有什么问题?
-
-replace参数是一个正则表达式。要么将?转义为\?,要么使用明文方法$line.replace('foo', 'bar') -
嗨,如果我使用
replace('foo', 'bar'),我会收到错误:Method invocation failed because [Selected.System.Management.Automation.PSCustomObject] does not contain a method named 'Replace'. -
使用
Select-Object -ExpandProperty而不是Select-Object -Property
标签: windows powershell hotfix