引用: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&® DELETE %reg_path_1% /f
REG QUERY %reg_path_2% /s >nul 1>nul 2>nul&® DELETE %reg_path_2% /f
REG QUERY %reg_path_3% /s >nul 1>nul 2>nul&® DELETE %reg_path_3% /f
echo.&echo [任意鍵退出]清除操作完成&pause >nul&exit
編寫思路及原理參考自:怎麼把殘留的license删除啊?_百度知道