Windows批处理:如何提取含空格的Putty注册表路径至变量?
提取注册表中Putty路径的批处理方案(适配Windows 10)
核心逻辑
Windows 10下REG QUERY的输出分隔符由XP的制表符改为4个空格,且Putty路径可能包含空格,因此需要通过字符串截取、替换的方式精准提取路径,全程依赖系统自带的批处理工具实现。
批处理代码实现
@echo off setlocal enabledelayedexpansion :: 指定目标注册表项和键名 set "regKey=HKCU\Software\SimonTatham\PuTTY\Sessions\Default%20Settings" set "regValue=PuttyPath" :: 执行注册表查询,过滤出目标键的行 for /f "tokens=*" %%a in ('reg query "%regKey%" /v "%regValue%" 2^>nul') do ( set "line=%%a" :: 截取键名之后的所有内容 set "line=!line:*%regValue%=!" :: 移除键名与路径之间的4个空格分隔符 set "line=!line: =!" :: 将提取到的路径赋值给putty变量 set "putty=!line!" ) :: 验证并输出结果 if defined putty ( echo 提取到的Putty路径:!putty! ) else ( echo 未找到Putty相关注册表项 ) endlocal
代码说明
setlocal enabledelayedexpansion:启用延迟变量扩展,确保循环内的变量修改能实时生效reg query "%regKey%" /v "%regValue%" 2^>nul:查询指定注册表项,忽略无权限或不存在项的错误输出- 两次字符串处理:先截掉键名及之前的内容,再移除分隔用的4个空格,最终得到完整路径
- 最后判断变量是否存在,输出提取结果或提示未找到
注意事项
- 若Putty为全局安装,需将
regKey改为HKLM\Software\SimonTatham\PuTTY\...,且批处理需以管理员权限运行 - 部分Putty版本的注册表路径或键名可能有差异,可先手动执行
REG QUERY命令确认目标项位置
内容的提问来源于stack exchange,提问作者rund
相关产品推荐
相关产品推荐

