我正在尝试更新一组注册表项,一组属性需要使用基于旧值的新值进行更新。
我尝试使用以下内容:
Get-ItemProperty -Path HKCU:\Software\xxxxx\*.mydomain.com Uri
| set-itemproperty -Path { $_.PSPath } Uri -Value { $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" }
但这会将 uri 属性的值设置为:{ $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" }
我试过:
Get-ItemProperty -Path HKCU:\Software\xxxxx\*.mydomain.com Uri
| set-itemproperty -Path { $_.PSPath } Uri -Value ${ $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" }
和
Get-ItemProperty -Path HKCU:\Software\xxxxx\*.mydomain.com Uri
| set-itemproperty -Path { $_.PSPath } Uri -Value ( $_.Value -Replace ".mydomain.com/", ".mynewdomain.com/" )
但这清除了价值。
我想用尽可能少的行更新多个键中的多个注册表值。我已经通过导出注册表,使用记事本搜索和替换,然后重新导入注册表项来让它工作,但这感觉像是作弊。我真的很想知道如何使用 Powershell 来实现这一点。
我尝试过的其他事情:$(...)
,,(...)
省略了-Value
您命名的选项:S。
我尝试用 and 替换$_.Value
,$_.Uri
也$_
没有用。
该问题现已解决,该答案用于指导如何为新的 Team Foundation Services 更新 TFS 项目集合设置。