如何用单个REG QUERY命令获取指定程序的UninstallString(CMD环境)
直接获取myApp卸载字符串的CMD实现方案
你可以通过CMD内置的for循环配合REG QUERY命令,一步完成目标卸载字符串的提取,无需分多步操作。具体命令如下:
for /f "tokens=*" %a in ('REG QUERY "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s /f "myApp" /k') do @REG QUERY "%a" /v UninstallString
命令细节解释:
REG QUERY "HKLM\...\Uninstall" /s /f "myApp" /k:递归遍历32位程序的卸载注册表项,搜索项名称包含myApp的条目(/k指定搜索项名称而非值或数据),返回匹配的完整注册表项路径。for /f "tokens=*" %a in (...):将第一步输出的每个匹配项路径赋值给变量%a,tokens=*用于保留包含空格的路径。@REG QUERY "%a" /v UninstallString:针对每个匹配的注册表项,查询其UninstallString值;@用于隐藏命令本身的输出,只显示最终的卸载字符串结果。
如果需要直接提取纯卸载命令(去掉注册表项和值名称前缀),可以使用进阶命令:
for /f "tokens=*" %a in ('REG QUERY "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s /f "myApp" /k') do @for /f "tokens=3,*" %b in ('REG QUERY "%a" /v UninstallString') do @echo %c
注意事项:
- 若在批处理脚本中使用该命令,需将变量名的单个
%改为双%%(例如%%a、%%b)。 - 若需要精确区分大小写匹配
myApp,可在REG QUERY命令中添加/c参数。
内容的提问来源于stack exchange,提问作者pburgr
相关产品推荐
相关产品推荐

