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

PowerShell操作Windows注册表:HKCR:\*\shell路径识别失败求助

问题分析与解决方案

你的脚本陷入无限运行的核心原因是注册表路径中的错误转义:在单引号包裹的字符串中,*不需要用反引号转义,你添加的反引号会被PowerShell当作路径的一部分,导致尝试创建一个名为\*`的无效注册表键,进而引发操作卡住。

修正步骤

  1. 移除错误的反引号:将第4、5项的路径中的反引号删除,正确指向HKCR:\*(所有文件类型的上下文菜单键)。
  2. 简化HKCR驱动器检查逻辑:原检查代码可以简化,避免冗余判断。
  3. 可选:聚焦目标文件类型:如果仅需针对.bat和.cmd,可以删除HKCR:*相关的两项,只保留batfile和cmdfile的配置。

修正后的完整脚本

# 检查HKCR驱动器是否存在,不存在则创建
if (-not (Get-PSDrive -Name HKCR -ErrorAction SilentlyContinue)) {
    New-PSDrive -PSProvider Registry -Root "HKEY_CLASSES_ROOT" -Name "HKCR" | Out-Null
}

# 定义注册表项配置(已修正路径)
$registryValues = @(
    @{
        Path = 'HKCR:\batfile\shell\Open with\command'
        Name = '(default)'
        Value = '{09799AFB-AD67-11d1-ABCD-00C04FC30936}'
    },
    @{
        Path = 'HKCR:\batfile\shell\edit\command'
        Name = '(default)'
        Value = '"C:\Program Files (x86)\Notepad++\notepad++.exe %1"'
    },
    @{
        Path = 'HKCR:\cmdfile\shell\edit\command'
        Name = '(default)'
        Value = '"C:\Program Files (x86)\Notepad++\notepad++.exe %1"'
    },
    @{
        Path = 'HKCR:\*\shell\Open with Notepad++'
        Name = 'Icon'
        Value = 'C:\Program Files (x86)\Notepad++\notepad++.exe'
    },
    @{
        Path = 'HKCR:\*\shell\Open with Notepad++\command'
        Name = '(default)'
        Value = '"C:\Program Files (x86)\Notepad++\notepad++.exe %1"'
    }
)

# 创建/更新注册表值的函数
function Set-RegistryValue {
    param(
        [string]$Path,
        [string]$Name,
        [string]$Value
    )

    # 不存在则创建注册表键
    if (-not (Test-Path $Path)) {
        New-Item -Path $Path -Force | Out-Null
    }  

    # 设置注册表值
    New-ItemProperty -Path $Path -Name $Name -Value $Value -PropertyType String -Force
}

# 批量处理注册表项
foreach ($entry in $registryValues) {
    Set-RegistryValue -Path $entry.Path -Name $entry.Name -Value $entry.Value
}

额外说明

  • 如果你仅需要为.bat和.cmd添加右键菜单,直接删除数组中最后两项(HKCR:*相关的配置)即可。
  • 运行脚本需要管理员权限,否则会因注册表写入权限不足报错。
  • 若Notepad++安装路径不同(比如64位版本在C:\Program Files\Notepad++),需对应修改Value中的路径。

内容的提问来源于stack exchange,提问作者Kenneth Matthys

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:13:16