无忧启动论坛

标题: 注册表查找并截取 [打印本页]

作者: liboxiang_cn    时间: 前天 11:12
标题: 注册表查找并截取
注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\MicrosoftEdgeUpdateTaskMachineCore{8DC76002-E9C1-4B2E-80E4-BCAA6658F16D},其中8DC76002-E9C1-4B2E-80E4-BCAA6658F16D是动态变化的,如何在注册表中找到并返回\MicrosoftEdgeUpdateTaskMachineCore{8DC76002-E9C1-4B2E-80E4-BCAA6658F16D}值?




作者: martin313    时间: 前天 11:24
本帖最后由 martin313 于 2026-2-28 11:25 编辑

问deepseek,应该可以轻松解决
@echo off
setlocal enabledelayedexpansion

:: 设置父路径
set "parent=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree"

:: 列出该目录下的所有项,并通过 findstr 筛选以 MicrosoftEdgeUpdateTaskMachineCore 开头的行
for /f "tokens=*" %%i in ('reg query "%parent%" /f "MicrosoftEdgeUpdateTaskMachineCore*" /k 2^>nul ^| findstr /i "MicrosoftEdgeUpdateTaskMachineCore"') do (
    set "foundPath=%%i"
    echo 找到的注册表项: !foundPath!

    :: 可选:如果需要读取该项下的值
    rem reg query "!foundPath!"
)

if not defined foundPath (
    echo 未找到对应的注册表项。
)

pause


作者: ebaqiang    时间: 前天 11:28
我也在等楼下回帖
作者: a66    时间: 前天 11:30
  1. echo off
  2. for /f "delims=" %%a in ('powershell -Command "Get-ChildItem -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree' | Where-Object { $_.PSChildName -like 'MicrosoftEdgeUpdateTaskMachineCore*' } | Select-Object -ExpandProperty PSChildName"') do set "guidName=%%a"
  3. echo 找到的注册表项名称: %guidName%
复制代码




作者: liboxiang_cn    时间: 前天 11:30
本帖最后由 liboxiang_cn 于 2026-2-28 11:40 编辑
martin313 发表于 2026-2-28 11:24
问deepseek,应该可以轻松解决
@echo off
setlocal enabledelayedexpansion

谢谢,加了个截取:set substring=%foundPath:~87,73%
echo %substring%



作者: liboxiang_cn    时间: 前天 12:07
a66 发表于 2026-2-28 11:30

谢谢
作者: smile_z    时间: 前天 13:02
学习一下
作者: 风中木木    时间: 前天 13:29
学习一下
作者: tt911    时间: 前天 14:46
Process Monitor 中截获宿主进程,并Ctrl+J查看堆栈调用。
作者: redyear2026    时间: 前天 14:46

要在管理员窗口中运行

  1. @echo off &set "n=" &for /f "delims=" %%p in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree" /s ^|find /i "EdgeUpdateTaskMachineCore{" ') do for /f "tokens=1-3 delims={} " %%a in ('reg query "%%p" ') do if not defined n (set "n=1" &echo,MicrosoftEdgeUpdateTaskMachineCore{%%c}) else (echo,%%a = %%c)
  2. pause&exit/b
复制代码


作者: l3429900    时间: 前天 16:06
liboxiang_cn 发表于 2026-2-28 11:30
谢谢,加了个截取:set substring=%foundPath:~87,73%
echo %substring%

显示哪一行 加上输出到文件就可以了  echo >>文件名
作者: CNKO    时间: 前天 16:18
谢谢分享!
作者: dos时代菜鸟    时间: 前天 19:31
本帖最后由 dos时代菜鸟 于 2026-2-28 19:37 编辑

@echo off
setlocal enabledelayedexpansion
set "reg_path=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree"
set "item1=MicrosoftEdgeUpdateTaskMachineCore"
for /f "tokens=9 delims=\" %%d in ('reg query "!reg_path!" /f "!item1!*" /k ') do (
    if not "%%d"=="" (
        set "item2=%%d"
        for /f %%i in ("!item1!") do (set item2=!item2:%%i=!)
        echo !item2!
    )
)
if "!item2!"=="" echo 未找到匹配的注册表项。
pause
作者: ILOVEQQ    时间: 昨天 14:23
谢谢分享,非常感謝您!





欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3