You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何将注册表路径及参数赋值给变量实现鼠标按键切换

解决PowerShell鼠标左右键切换脚本的变量替换问题

你的错误在于把注册表路径和-Name参数合并成一个字符串变量传递给命令,PowerShell会将整个字符串当作路径参数,无法识别其中的-Name参数,导致命令执行失败。下面是两种正确的写法:

方法一:分开定义路径和属性名变量

将注册表路径和要操作的属性名分别存为独立变量,让命令能正确解析每个参数:

$mousePath = 'HKCU:\Control Panel\Mouse'
$mouseProperty = 'SwapMouseButtons'

if ((Get-ItemPropertyValue $mousePath -Name $mouseProperty) -eq 0) {
    Set-ItemProperty $mousePath -Name $mouseProperty -Value 1
} else {
    Set-ItemProperty $mousePath -Name $mouseProperty -Value 0
}

方法二:使用参数哈希表(Splatting)

把需要传递的参数存入哈希表,通过@符号传递给命令,这种方式在参数较多时更简洁:

$mouseParams = @{
    Path  = 'HKCU:\Control Panel\Mouse'
    Name  = 'SwapMouseButtons'
}

if ((Get-ItemPropertyValue @mouseParams) -eq 0) {
    Set-ItemProperty @mouseParams -Value 1
} else {
    Set-ItemProperty @mouseParams -Value 0
}

内容的提问来源于stack exchange,提问作者Ju Tutt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 05:42:07