如何在批处理文件中仅输出注册表键的值?
Windows 10批处理仅提取注册表键值的方法
当然可以只获取注册表键对应的值,针对你要提取壁纸路径的需求,用批处理的for命令就能搞定,给你两种实用方案:
方案一:适配带空格的路径
把这段代码存成.bat文件运行:
@echo off for /f "tokens=3*" %%a in ('reg query "HKCU\Control Panel\Desktop" /v Wallpaper') do set "wallpaper_path=%%a %%b" echo %wallpaper_path%
tokens=3*的作用是抓取输出里第3项及后面的所有内容,毕竟壁纸路径可能带空格,这样能完整提取@echo off会关掉命令本身的打印,只显示最终的路径
方案二:仅适用于无空格的路径
如果确定路径里没空格,也可以用更简化的写法:
@echo off reg query "HKCU\Control Panel\Desktop" /v Wallpaper | findstr REG_SZ | for /f "tokens=3" %%a in ('more') do echo %%a
- 先用
findstr REG_SZ过滤出有效行,再提取第3个字段就是路径
运行后两种方法都会直接输出c:\windows\web\wallpaper\windows\img0.jpg,不会带多余的键名和类型信息。
内容的提问来源于stack exchange,提问作者Chaos
相关产品推荐
相关产品推荐

