Board logo

标题: 如何用批处理读注册表的Run下面的值? [打印本页]

作者: zerostudy     时间: 2006-7-25 16:12    标题: 如何用批处理读注册表的Run下面的值?

HKCU\Software\Microsoft\Windows\CurrentVersion\Run
当在run值下增加了.些启动项.运行批处理也可以读出来...并用对话框的信息弹出.请问如何写?>
作者: fastslz     时间: 2006-7-25 22:59
@echo off
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run|find "ctfmon.exe">nul
if not errorlevel 1 echo 开机启动程序项ctfmon.exe
PAUSE >nul
作者: zerostudy     时间: 2006-7-25 23:26
没反应啊??我的没有cftmon.exe这个程序的.
请问可以设变量表示run下面的值吗?
比如我加了一个QQ做启动..他也会读出来?
作者: namejm     时间: 2006-7-25 23:49
  这样可能会详细一点:
@echo off
for /f "tokens=2 delims=:" %%i in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run') do echo %systemDrive%%%i
pause>nul

作者: IceCrack     时间: 2006-7-26 09:29

@echo off
for /f "skip=4 tokens=1,2*" %%i in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run') do echo "%%i"  "%%k"  
pause>nul
在楼上的有些许改动.
主要是楼上的显示的路径有点不对的.要知道并不是每个人把东西都装在系统盘的哦
作者: namejm     时间: 2006-7-26 17:15
Re IceCrack:

  确实对路径考虑不周,不过你的代码还是难以达到要求,我修改了一下,这个应该比较符合要求了。但是仍有不足之处,那就是注册表中Run有很多项,如果能把所有的Run项都罗列出来就完美了:
@echo off
setlocal enabledelayedexpansion
for /f "skip=4 tokens=1,2 delims=:" %%i in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run') do (
    set str=%%i
    set var=%%j
    set "var=!var:"=!"
    if not "!var:~-1!"=="=" echo !str:~-1!:!var!
)
pause>nul
[ Last edited by namejm on 2006-7-26 at 17:19 ]