写这篇帖子,思来想去,还是放在这个编程语言专区吧。这类的教程、话题都非常多的。但我最近在安装winRAR,以及逛GitHub时,突发奇想了一个点子,就是我能不能一条指令,下载、安装、注册全搞定。
说不上什么授之以渔,也不是完全独立原创,都是参考资料的综合分析,稍加整理的个人经验想法分享。以下正题。
做批处理脚本之前了解到的信息
首先,WINRAR的简中个人版,不管有没有注册都有广告。
这里是简中版去广告的四种方式。
- 通过Resource Hacker修改及删除了内部的广告程序:全栈程序员站长-WinRAR去广告:只需六步,教你去除WinRAR的广告
- 阻止其联网:百度经验-如何禁止winrar弹出广告
- 使用商业版进行注册,winrar商业版提取器:wiflvtx/win-rar-extractor
- 绕道官网购买(非代{过}{滤}理商),联系WinRAR技术支持:为什么 WinRAR 买了授权还是有广告? - 小约翰的回答 - 知乎
商业版地址规律:
YYYYMMDD,年月日;PPP是渠道;XXX,版本号。
https://www.win-rar.com/fileadmin/winrar-versions/sc/scYYYYMMDD/PPP/winrar-x64-XXXsc.exe
其他参考资料:
对如上信息的归纳
昨晚我看了下winrar相关的激活文章,以及简单分析了下烈火的winrar,我粗糙归纳为三个核心吧:
- winrar软件下载渠道(个人版、商业版)
- winrar激活机制(用户信息与UID绑定,文件替换)
- winrar对学习版的态度,个人感觉跟Windows差不多...
根据这个逻辑,我做了一个小脚本,用到的时候,类似于Linux的“/bin/bash -c curl”那种,管理员运行CMD,一键复制粘贴这条指令执行(win7需额外升级powershell、配置TLS/SSL等,建议win10及以上系统使用)。
指令一的逻辑:使用CMD调用powershell的模块下载github仓库代码文件,暂缓一秒后,在当前窗口执行执行脚本。下面两者任选其一即可。
cmd
powershell -command Invoke-WebRequest -Uri "https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/winrar_down_reg.bat" -OutFile "C:/Users/${env:UserName}/Downloads/winrar_down_reg.bat"&&TIMEOUT /T 1&&start /b C:\Users\%username%\Downloads\winrar_down_reg.bat
指令二的逻辑:使用cmd自带的curl,然后下载执行操作。
curl -O https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/winrar_down_reg.bat&&TIMEOUT /T 3&&start /b winrar_down_reg.bat
脚本源码逻辑:1、商业版渠道下载;2、静默安装;3、写入注册key到winrar目录中;4、操作完成后自动删除脚本。
效果图
附源码,方便一起查看与讨论吧
hoochanlon/winrar_down_reg.bat ,代码写的不太好,挺糙的,望包涵,见笑了。
注册信息是选自烈火修改版、以及网上分享rarreg.key文件二者,在这之前我也找到过GitHub上生成winrar-keygen的项目:bitcookies/winrar-keygen。
@echo "注意:需以管理员权限运行该winRAR一键下载安装注册激活脚本。"
@echo
@echo "替换国内代{过}{滤}理个人含广告版,下载官方镜像简中商业版WinRAR。(下载位置在C盘里的下载目录)。"
@echo off
powershell -command Invoke-WebRequest -Uri "https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20220317/wrr/winrar-x64-611sc.exe" -OutFile "C:/Users/${env:UserName}/Downloads/winrar-x64-611sc.exe"&&start /wait C:\Users\%username%\Downloads\winrar-x64-611sc.exe /S
@echo "静默安装WinRAR,并写入注册文件。"
@echo off
(
echo RAR registration data
echo State Grid Corporation Of China
echo 50000 PC usage license
echo UID=5827a0bd1c43525d0a5d
echo 64122122500a5d3d56f784f3a440ac3fb632d34e08bbaa37fc7712
echo 6acaeb8eb044810272e86042cb7c79b1da0eaf88c79f8a7c6dd77b
echo dba335e27a109997ac90fb0e10e4129e79f46c42b4ee1832fa5113
echo 7443fcc1124840d4dd36f3af84a5c915a760b18c6394f938168227
echo fbf29edbc4b34ef85ee53fbfca71814a82afadf073876b4b033451
echo b6292a7cc7975b3ff3cc73404abbf7c126787344169eeae4609f62
echo c9ffbc159bf2640ad5d9b88f8fa9d9cbf2b7e5b022a21938465244
)>C:\"Program Files"\WinRAR\rarreg.key
@echo "激活去广告已完成,按回车或点叉关闭该窗口。"
pause
del %0
:: 其他说明
:: 之前的WinRAR软件需安装默认目录。
:: 编码:GB2312;换行:CRLF。修复注释造成命令字母缺失及乱码问题。
:: explorer.exe也用于下载,但写出有效代码太麻烦了。
:: 非管理员的CMD,写入到C盘的Program Files文件不成功。
:: win7需要额外安装powershell5.0以及TLS/SSL管理工具。
:: 参考链接
:: https://jingyan.baidu.com/article/14bd256e4f7b6fbb6d2612c6.htm
:: https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7.3
:: https://www.learnfk.com/batch-script/batch-script.aliases.html
:: https://cloud.tencent.com/developer/article/2069559
补一下先前一段时间在我论坛发的一键切换Windows系统版本与激活Windows及Office,其实也是同理,只是相对来说多了一些命令行与powershell之间的调用。