无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 246|回复: 16
打印 上一主题 下一主题

[求助] 注册表查找并截取

[复制链接]
跳转到指定楼层
1#
发表于 昨天 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}值?



2#
发表于 昨天 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

点评

好人  发表于 昨天 11:31
谢谢,如何截取?  详情 回复 发表于 昨天 11:30

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

3#
发表于 昨天 11:28 | 只看该作者
我也在等楼下回帖
回复

使用道具 举报

4#
发表于 昨天 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%
复制代码



点评

谢谢  详情 回复 发表于 昨天 12:07
好人  发表于 昨天 11:46

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

5#
 楼主| 发表于 昨天 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%


点评

显示哪一行 加上输出到文件就可以了 echo >>文件名  详情 回复 发表于 昨天 16:06
回复

使用道具 举报

6#
 楼主| 发表于 昨天 12:07 | 只看该作者
回复

使用道具 举报

7#
发表于 昨天 13:02 | 只看该作者
学习一下
回复

使用道具 举报

8#
发表于 昨天 13:29 | 只看该作者
学习一下
回复

使用道具 举报

9#
发表于 昨天 14:46 | 只看该作者
Process Monitor 中截获宿主进程,并Ctrl+J查看堆栈调用。
回复

使用道具 举报

10#
发表于 昨天 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
复制代码

点评

好人  发表于 昨天 18:22

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

11#
发表于 昨天 16:06 | 只看该作者
liboxiang_cn 发表于 2026-2-28 11:30
谢谢,加了个截取:set substring=%foundPath:~87,73%
echo %substring%

显示哪一行 加上输出到文件就可以了  echo >>文件名
回复

使用道具 举报

12#
发表于 昨天 16:18 | 只看该作者
谢谢分享!
回复

使用道具 举报

13#
发表于 昨天 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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2026-3-1 00:13

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表