[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 【已解决】求教批处理如何获取注册表内的值,感谢

本帖最后由 986981535 于 2022-12-20 14:45 编辑

计算机注册表红色部分可能改变,但是他项目内有固定项:InstallLocation   值为:C:\Program Files (x86)\Adobe\Acrobat Reader DC\
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-2052-7B44-AC0F074E4100}
如何通过bat获取到红色的值,并后续调用他:MsiExec.exe /I{AC76BA86-7AD7-2052-7B44-AC0F074E4100}


另外还有个办法就是再C盘内有个文件夹也是这个值:C:\ProgramData\Adobe\Setup\{AC76BA86-7AD7-2052-7B44-AC0F074E4100}
可以获取这个也是可以。
感谢~
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

我完成第二个。求注册表的,谢谢
@echo off
dir /b C:\ProgramData\Adobe\Setup\{*}
for /f "delims=" %%A in ('dir /b C:\ProgramData\Adobe\Setup\{*}') do set "BakFileName=%%A"
MsiExec.exe /I%BakFileName% /passive

TOP

本帖最后由 ANSL 于 2022-12-20 12:23 编辑
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. for /f "skip=1 delims=: tokens=1,*" %%i in ('REG  QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-2052-7B44-AC0F074E4100}" /v "InstallLocation"') do (
  4.    set str=%%i
  5.    set var=%%j
  6.    set "var=!var:"=!"
  7.    if not "!var:~-1!"=="=" set value="!str:~-1!C:!var!"
  8. )
  9. MsiExec.exe /I %value%
  10. pause&exit
复制代码
存为 ANSI格式
如果{AC76BA86-7AD7-2052-7B44-AC0F074E4100}变成了 其他的就不行
1

评分人数

本人已死,不用联系,要联系下来联系~

TOP

回复 3# ANSL


    你好,这个值是变动的{AC76BA86-7AD7-2052-7B44-AC0F074E4100},所以希望可以获取到实际的值。他和版本有关系。

TOP

回复 4# 986981535
你的方法
用文件夹判断方法不行吗.....
  1. @echo off
  2. dir /b C:\ProgramData\Adobe\Setup\{*}
  3. for /f "delims=" %%A in ('dir /b C:\ProgramData\Adobe\Setup\{*}') do set "BakFileName=%%A"
  4. MsiExec.exe /I%BakFileName% /passive
复制代码
本人已死,不用联系,要联系下来联系~

TOP

回复 1# 986981535
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s /v InstallLocation') do (
  4.     set "PreRow=!ThisRow!"
  5.     set "ThisRow=%%i"
  6.     if "!ThisRow:Acrobat Reader DC=!" neq "!ThisRow!" (
  7.         for /f "delims=" %%a in ("!PreRow!") do (
  8.             echo,%%~nxa
  9.         )
  10.         goto :End
  11.     )
  12. )
  13. :End
  14. pause
复制代码
2

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# ANSL


    可以,只是想再多一个方式。

TOP

回复 6# Batcher


    感谢,可以了。虽然不太懂,有空再研究下。非常感谢

TOP

回复 6# Batcher


    大神,能帮忙给改一下这个吗
      希望能在 【hklm\wtgsys\ControlSet001\Enum\USB\VID_%VID%^&ID_%PID%\XXXX】路径下找到下面的XXXX,然后修改XXXX下的值
      但是每一个WTG系统 “SYSTEM”文件导入后的 【hklm\wtgsys\ControlSet001\Enum\USB\VID_%VID%^&PID_%PID%\XXXX】VID PID MSFT 都不一样
      您能给一下如何寻找路径中XXXX吗(【hklm\wtgsys\ControlSet001\Enum\USB\VID_%VID%^&PID_%PID%】路径下只有XXXX这一个项)
      附:有办法通过批处理获得U盘的VID、PID吗
  1. @echo off
  2. color b
  3. reg unload HKEY_LOCAL_MACHINE\wtgsys
  4. cls
  5. title 启动WTG系统拔出冻结(测试版)
  6. echo 启动WTG系统拔出冻结(测试版)
  7. ping /n 2 127.1>nul
  8. echo 加载注册表
  9. echo (如果电脑上仅有一个WTG系统,直接按enter,否则输入对应盘盘符 格式“X:”)
  10. set /p in=
  11. for %%a in (E: F: G: H: I:) do (
  12.      if exist %%a\ (
  13. if "%%a"=="%in%" goto inload
  14.      )else echo 无%%a盘
  15. )
  16. for %%a in (E: F: G: H: I:) do (
  17. if exist %%a\ (
  18. echo 在%%a盘加载
  19. reg load HKEY_LOCAL_MACHINE\wtgsys %%a\Windows\System32\config\SYSTEM
  20. )else echo 无%%a盘
  21. )
  22. :ID
  23. ping /n 5 127.1>nul
  24. cls
  25. echo 请输入VID 174C
  26. set /p VID=
  27. echo 请输入PID 55AA
  28. set /p PID=
  29. echo 请输入MSFT序列号 60SSFD42521AF031BB8
  30. set /p MSFT=
  31. if "%VID%"=="" goto err
  32. if "%PID%"=="" goto err
  33. if "%MSFT%"=="" goto err
  34. cls
  35. echo 请确认
  36. echo VID: %VID%
  37. echo PID: %PID%
  38. echo 序列号: %MSFT%
  39. pause
  40. reg add hklm\wtgsys\ControlSet001\Enum\USB\VID_%VID%^&PID_%PID%\%MSFT% /v DeviceDesc  /d "@usbstor.inf,%genericbulkonly.devicedesc%;USB Mass Storage Device" /f
  41. reg add hklm\wtgsys\ControlSet001\Enum\USB\VID_%VID%^&PID_%PID%\%MSFT% /v Capabilities /t REG_DWORD /d "148" /f
  42. reg add hklm\wtgsys\ControlSet001\Enum\USB\VID_%VID%^&PID_%PID%\%MSFT% /v Service /t REG_SZ /d USBSTOR /f
  43. reg add hklm\wtgsys\ControlSet001\Enum\USB\VID_%VID%^&PID_%PID%\%MSFT% /v Mfg /t REG_SZ /d "@usbstor.inf,%generic.mfg%;Compatible USB storage device" /f
  44. reg unload HKEY_LOCAL_MACHINE\wtgsys
  45. echo 冻结完成
  46. ping /n 5 127.1>nul
  47. exit
  48. :err
  49. echo 输入为空
  50. goto ID
  51. :inload
  52. echo 在%in%盘
  53. reg load HKEY_LOCAL_MACHINE\wtgsys %in%\Windows\System32\config\SYSTEM
  54. goto ID
复制代码

TOP

回复 9# jimmy2008317


    你的问题和楼主的问题不是一回事,请单独发个帖子吧。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 10# Batcher


    大神,发好了,麻烦您帮忙看看
帖子

TOP

返回列表