天天看点

用于解决IAR卸载重装注册失败的批处理脚本(测试阶段)引用:IAR卸载重装注册失败的解决办法_酷酷咔汽的博客-CSDN博客_卸载iar

引用:IAR卸载重装注册失败的解决办法_酷酷咔汽的博客-CSDN博客_卸载iar

直接贴出源码

::V1.0.0 适用于Windows10 x64 以默认路径名安装的方式
@echo off&setlocal EnableDelayedExpansion
color 0A
title 添加服务配置
PUSHD %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas

title IAR注册信息清理

::包含信息:许可证号、许可证号授权码、安装路径、用户名、公司(本地计算机软硬件信息)
set reg_path_1="HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\IAR Systems"
::包含信息:最后的用户名、最后的公司、最近使用过的工作空间(本地计算机中存放的当前登录的用户信息)
set reg_path_2="HKEY_CURRENT_USER\Software\IAR Systems"
::包含信息:最后的用户名、最后的公司、最近使用过的工作空间(本地计算机口令列表中用户标识对应的预配置信息)
FOR /F "tokens=2" %%i IN ('whoami /user^|findstr /i "%username%"') DO set reg_path_3="HKEY_USERS\%%i\Software\IAR Systems"

::注释:HKEY_CURRENT_USER包含着在HKEY_USERS安全辨别里列出的同样信息。任何在HKEY_CURRENT_USER里的改动也都会立即HKEY_USERS改动。相反也是这样。

::开始菜单程序的快捷方式
set file_path_0="%ProgramData%\Microsoft\Windows\Start Menu\Programs\IAR Systems"
::包含许可证文件
set file_path_1="%CommonProgramFiles(x86)%\IAR Systems"
::包含许可证文件的补充路径
set file_path_2="%CommonProgramFiles%\IAR Systems"
::注册表提取安装路径("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\IAR Systems")
FOR /F "tokens=2*" %%i IN ('REG QUERY !reg_path_1! /s 2^>nul^|findstr "InstallPath"') DO set file_path_3="%%j"



::查询当前用户的SID
whoami /user&echo.

IF EXIST %file_path_3% echo [路径]注册表提取的安装路径:%file_path_3%&&tree /f %file_path_3%
IF EXIST %file_path_1% echo [文件]许可证相关文件存在:%file_path_1%&&tree /f %file_path_1%
IF EXIST %file_path_2% echo [文件]许可证相关文件存在:%file_path_2%&&tree /f %file_path_2%

:: 显示注册表项 IAR Systems 下的所有子项和值并查询
REG QUERY %reg_path_1% /s >nul 1>nul 2>nul&&echo [注册表]已找到相关键值:%reg_path_1%||echo [注册表]未找到相关键值:%reg_path_1%&echo 包含信息:许可证号、许可证号授权码、安装路径、用户名、公司(本地计算机软硬件信息)
REG QUERY %reg_path_1% /s 2>nul|findstr "InstallPath LicenseNo LicenseKey UserName Company"&echo.

REG QUERY %reg_path_2% /s >nul 1>nul 2>nul&&echo [注册表]已找到相关键值:%reg_path_2%||echo [注册表]未找到相关键值:%reg_path_2%&echo 包含信息:最后的用户名、最后的公司、最近使用过的工作空间(本地计算机中存放的当前登录的用户信息)
REG QUERY %reg_path_2% /s 2>nul|findstr "LastUsername LastCompany"&echo.

REG QUERY %reg_path_3% /s >nul 1>nul 2>nul&&echo [注册表]已找到相关键值:%reg_path_3%||echo [注册表]未找到相关键值:%reg_path_3%&echo 包含信息:最后的用户名、最后的公司、最近使用过的工作空间(本地计算机口令列表中用户标识对应的预配置信息)
REG QUERY %reg_path_3% /s 2>nul|findstr "LastUsername LastCompany"&echo.


::似乎不可靠的保险程序
IF EXIST %file_path_0% (
	echo [开始]菜单 程序 相关快捷方式存在&&color 0E&&echo [警告]确认是否已经卸载IAR,已卸载可继续下一步进行相关文件清理以备二次重新激活,若未卸载执意运行下一步后果自负&&echo.&&goto YorN
) ELSE (
	echo [注意]将要进入清除操作,本操作具有危险性且不可逆转,三思而后行&&echo.&&goto YorN
)

:YorN
set /p var="你要进行下一步吗?(Y/N)"
color 0A
if %VAR%==Y GOTO main
if %VAR%==N echo 可以退出了&pause>nul&exit

:main
cls
IF EXIST %file_path_1% RD /S /Q %file_path_1%
IF EXIST %file_path_2% RD /S /Q %file_path_2%
IF EXIST %file_path_3% RD /S /Q %file_path_3%
IF EXIST %file_path_0% RD /S /Q %file_path_0%
REG QUERY %reg_path_1% /s >nul 1>nul 2>nul&&REG DELETE %reg_path_1% /f
REG QUERY %reg_path_2% /s >nul 1>nul 2>nul&&REG DELETE %reg_path_2% /f
REG QUERY %reg_path_3% /s >nul 1>nul 2>nul&&REG DELETE %reg_path_3% /f
echo.&echo [任意键退出]清除操作完成&pause >nul&exit
           

编写思路及原理参考自:怎么把残留的license删除啊?_百度知道