如何不使用变量通过管道实现PowerShell注册表值切换?
实现方法
直接用管道结合脚本块就能完成无变量的明暗模式切换,代码如下:
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name "AppsUseLightTheme" | Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name "AppsUseLightTheme" -Value { $_.AppsUseLightTheme -bxor 1 }
关键点说明
Get-ItemProperty先获取目标注册表项的AppsUseLightTheme属性值,通过管道把包含该属性的对象传递给下一个命令Set-ItemProperty的-Value参数用脚本块{ $_.AppsUseLightTheme -bxor 1 },其中$_指代管道传来的对象,取出原有属性值后和1做异或运算,实现0和1的切换(0变1,1变0)- 因为
Set-ItemProperty需要明确指定注册表路径和属性名,所以这里直接重复写了路径和属性名,确保准确修改目标项
内容的提问来源于stack exchange,提问作者jamacoe
相关产品推荐
相关产品推荐

