标题: [注册表类] 【已解决】求助批处理获取注册表键值 [打印本页]
作者: 不知道是谁 时间: 2022-5-13 16:20 标题: 【已解决】求助批处理获取注册表键值
本帖最后由 不知道是谁 于 2022-5-13 22:26 编辑
一个绿色程序,有好几个版本,自身不带一键卸载功能,所以想写个一键清理的批处理
但发现居然搞不定,希望大佬们能提供一些思路,谢谢
版本1:
会在 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 建立启动项 ABC
如果文件是在没有空格的路径上,生成的值为 C:\Users\Administrator\Desktop\111.exe 1
如果文件中在带空格的路径上,生成的值会带引号 ”C:\Users\Administrator\Desktop\A A\111.exe“ 1
版本2:
会在 HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run 建立启动项 ABC
不区分空格,生成的值都会带引号 ”C:\Users\Administrator\Desktop\111.exe“ 1
现在是不想要后面的数字1,只想要 C:\Users\Administrator\Desktop\111.exe- @echo off
- set Key=HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- for /f "tokens=2,*" %%i in ('reg query "%Key%" /v "ABC" 2^>nul') do echo %%j
- pause
复制代码
作者: flashercs 时间: 2022-5-13 17:06
- @echo off
- set Key=HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- for /f "tokens=2*" %%i in ('reg query "%Key%" /v "ABC" 2^>nul') do (
- for %%k in (%%j) do (
- set s=%%k
- goto break
- )
- )
- :break
- echo %s%
- pause
复制代码
作者: 不知道是谁 时间: 2022-5-13 22:07
回复 2# flashercs
看了之后才感觉原来这么简单,陷入思维误区了,一直在想着怎么用 delims 和 tokens 达成期望的效果,居然把 for %variable in (set) do command 给忘了- @echo off
- set Key1=HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- set Key2=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
- set Key3=HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
- call :GetInfo
- echo 名称:%FileName%
- echo 路径:%FilePath%
- taskkill /f /im %FileName% >nul 2>nul
- pause & exit
- :GetInfo
- for %%i in (%Key1% %Key2% %Key3%) do (
- for /f "tokens=2*" %%j in ('reg query "%%i" /v "ABC" 2^>nul') do (
- for %%l in (%%k) do (
- if %%l EQU 1 goto :eof
- set FilePath=%%~l
- set FileName=%%~nxl
- )
- )
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |