Batch file 批处理文件:读取注册表项并查找用户输入是否存在

Batch file 批处理文件:读取注册表项并查找用户输入是否存在,batch-file,registry,Batch File,Registry,我正在编写一个批处理文件以接受用户给定的字符串值,需要查询HKLM注册表以查找用户给定的字符串/键是否存在 例如,我需要看看下面的注册表 HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDK 在我的机器上,“Microsoft SDK”下面有3个条目,即, .NETFramework 斯莱特 窗户 如果用户提供“BlahBlah”,我应该在第2步检查字符串的内容/列表,如果存在,则执行其他操作 有人能告诉我怎么得到

我正在编写一个批处理文件以接受用户给定的字符串值,需要查询HKLM注册表以查找用户给定的字符串/键是否存在

  • 例如,我需要看看下面的注册表

    HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDK

  • 在我的机器上,“Microsoft SDK”下面有3个条目,即, .NETFramework 斯莱特 窗户

  • 如果用户提供“BlahBlah”,我应该在第2步检查字符串的内容/列表,如果存在,则执行其他操作

  • 有人能告诉我怎么得到这个吗?如果需要进一步解释,请告诉我

    问候,,
    Kumar

    您可能需要使用PowerShell。以下是一个例子:


    请记住,Windows XP他没有
    REG
    命令

    Hi,感谢您的回复。它几乎满足了我的目的,但当我提供5次不存在的字符串,然后输入一个有效字符串时,它会显示{“valid_string”does exists}5次。我不知道出了什么问题。有什么想法吗?
    @echo off
    
    set /p search_for=what you want to check?
    
    reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs" 2>nul|findstr /i /e "%search_for%" 1>nul 2>nul && (
      echo %search_for% does  exist
      rem color will set errorlevel to 0 to prevent the negative execution
      color
    ) || (
      echo %search_for% does NOT exist
    )