简介:这款Revit卸载工具专为彻底清理Revit等设计软件卸载后遗留的注册表项、配置文件与启动信息而制作,尤其适合因旧版本残留导致新版本安装失败或系统运行变慢的建筑师、BIM工程师与软件运维人员。工具支持深度扫描与批量清理,并在设计上兼容Visual Studio 2015等同类大型软件的卸载场景。压缩包共收录28个文件,打包体积约30.01MB,其中最常见的是XML配置、INI参数、CACHE缓存以及可执行主程序和帮助文档,辅以更新日志等文本,便于在清理时快速定位相关组件与说明信息。已有3324人浏览学习,可作为处理顽固卸载问题的高频备用工具。下载并运行后,可调用专业卸载引擎完成卸载前快照、安装状态分析、卸载计划生成与逐项执行;通过对比前后文件系统、注册表与启动项变化,能有效清除Revit或VS2015的残留痕迹,降低卸载失败风险,减少因手动误删带来的损失,且支持便携式运行,无需复杂安装即可启动。随包提供的帮助文档与日志还能指导使用者理解清理原理,养成先备份、再卸载、后还原的系统维护习惯。
1. Revit 卸载工具不是我遇到的第一个清理软件,但它是被重装问题逼出来最刚需的一个
很多用 Revit 的人都有过这种经历:控制面板里卸载走了一遍,安装目录也手动删了一轮,结果重装时还是提示“已有更高版本存在”或卡在配置界面。Revit 卸载工具,就是针对这些并没有真正消失的残留做二次清理的专用程序。它解决的不仅是空间占用,而是让安装程序能在干净环境里重新运行。适合换版本频繁的建模岗位、维护多台工作站的 BIM 管理员,以及被“卸载不干净”折腾过的工程师。Revit 自身的卸载流程只负责主程序,装完的补丁、材质库、许可服务和协同组件往往散落在多个系统目录里,普通用户很难靠手工找全。这套卸载工具的核心价值,是把散落的残留按风险等级排序,先备份再清理,让重装不再看运气。
2. Revit 卸载不干净的三处残留:卸载工具按什么顺序下手
动手之前,先把“为什么系统里还有东西”搞清楚。Revit 的卸载过程并不是把所有写过的文件全部删干净,而是按产品清单移除有记录的文件,再执行几个卸载动作。装过的补丁、材质库、许可注册信息,通常不在当初安装清单的“回滚”范围内。它们散落在安装目录之外,卸载流程管不到,就成了下一次安装的阻碍。卸载工具能落地,前提就是把这几处位置看明白了。
2.1 文件层残留:安装目录之外更隐蔽的两个目录
大多数人手动清理只删了主安装目录,也就是C:\Program Files\Revit\...这一大块。其实还有两类目录更容易漏:一类是系统公共数据目录C:\ProgramData\Revit,里面放着材质、构件库、样板文件和早期版本的共享组件;另一类是当前用户环境下的%LOCALAPPDATA%\Revit与%APPDATA%\Revit,日志、临时缓存、最近打开列表都在这里。卸载后,这两个位置的信息不会自动消失,重装时如果安装程序检测到其中某个配置文件的版本高于当前新装版本,就会直接拒绝继续。
我一般在运行卸载工具前,先用下面这段 PowerShell 快速扫一遍目录残留:
# 扫描与 Revit 相关的目录残留,结果只做初步参考 $roots = @( "$env:ProgramFiles", # 64 位程序目录 "${env:ProgramFiles(x86)}", # 32 位兼容程序目录 $env:ProgramData, # 公共数据目录,最容易被忽略 "$env:LOCALAPPDATA", "$env:APPDATA" ) foreach ($root in $roots) { Get-ChildItem -Path $root -Filter "*Revit*" -Directory -ErrorAction SilentlyContinue | Select-Object FullName }这段命令的核心是逐个扫描五个根目录,只要名称里包含 Revit 的文件夹都会列出来。参数方面,-Filter是在文件系统层过滤,比Where-Object快很多;-ErrorAction SilentlyContinue保证没有权限或目录不存在时不会刷红字。注意$env:ProgramFiles(x86)必须用大括号括起来,否则 PowerShell 会把它看成变量名的一部分,扫描结果直接少一块。
文件层残留还分“已注册”和“未注册”两类。已注册的文件可能在卸载程序的控制范围内,未注册的则完全没人管。判断标准是看系统安装服务里有没有对应的产品代码。只看目录名不能确定归属,所以我下面再看注册表。
2.2 注册表与安装服务缓存:卸载工具真正要攻的硬骨头
文件只是看得见的部分,真正卡住重装的是注册表和系统安装服务缓存。Revit 在安装时会在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\下写入自己的卸载入口,同时还会在安装服务缓存中登记产品代码。如果注册表项里残留了“已安装”的标记,新的安装程序会认为版本还存在于系统中;如果安装服务缓存里留着过期产品代码,安装时就会反复触发修复流程。
注册表位置通常有两个分支:64 位程序和 32 位程序所在的视图路径,这也是某些卸载工具误报“未安装 Revit”的原因之一。用下面这行命令可以看到当前系统登记的卸载信息:
# 查询系统已登记的 Revit 卸载项 $paths = @( "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" ) Get-ItemProperty -Path $paths -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -like "*Revit*" } | Select-Object DisplayName, DisplayVersion, UninstallString这段脚本的要点是同时查两条注册表路径,WOW6432Node分支保存的是 32 位组件的卸载信息,旧版本 Revit 经常会带出一堆 32 位补丁项。DisplayName是卸载列表里显示的名称,DisplayVersion是版本号,UninstallString是卸载程序实际调用的命令行。有些残留项从UninstallString里能直接看出它属于哪个组件,例如带msiexec的是走系统安装服务的组件,而直接指向某个 exe 的则可能是个自解压补丁。
我拆过的工具里,做得比较稳的都不会直接reg delete整个键,而是先读UninstallString,判断能否走系统安装服务的msiexec /x正常移除;只有确认是孤儿项之后,才做备份并标记删除。这样能避免把还在被共享组件引用的注册表项误删。
为了看得更清楚,把这三类残留整理成一张对照表:
| 残留类型 | 典型位置 | 不清理的结果 |
|---|---|---|
| 安装目录文件 | C:\Program Files\Revit | 新装版本直接被同名目录干扰 |
| 公共数据文件 | C:\ProgramData\Revit,%APPDATA%\Revit | 材质库、模板版本冲突 |
| 注册表卸载项 | Uninstall键,WOW6432Node分支 | 安装程序认为旧版仍存在 |
| 安装服务缓存 | 系统安装服务登记的产品代码 | 安装时触发修复流程,卡在“正在配置” |
安装服务缓存是最难处理的,因为它不像文件和注册表键那样可以按路径直接看到,只能靠安装服务的查询接口来枚举。卸载工具如果只做了文件扫描和注册表扫描,却没有碰安装服务缓存,那它清理完后的重装成功率会打折扣。
2.3 标准作业顺序:探测、备份、清理、校验
了解残留位置之后,再看卸载工具的操作顺序就很清晰了。完整流程是四步:
- 探测:读取已安装产品列表、扫描目录残留、检查安装服务缓存,输出一份待处理清单。
- 备份:把待清理的文件、注册表项、安装缓存记录复制到用户指定的备份目录,生成可回滚的快照。
- 清理:按风险等级执行删除或调用官方卸载接口,优先处理与当前版本直接相关的记录。
- 校验:清理完成后再次扫描,确认卸载入口消失、主目录不存在、安装服务缓存中无过期产品代码。
为什么一定要先备份再清理?因为 Revit 组件之间是共享的,比如公共材质库可能同时被多个工具版本引用,你清的是当前版本,但其他版本的数据也会被牵连。备份不是给工具自己看的,是给重装失败兜底的。没有这一步,清错一个共享组件的后果只能靠系统还原点补,而系统还原点往往没那么可靠。我在拆解这类工具时,第一眼就看它把备份放在第几步,顺序不对的直接不用。
提示:清理前先检查“备份目录”所在磁盘剩余空间。备份不仅要存文件副本,注册表导出和安装服务缓存历史也要占用空间,最好大于待清理软件安装目录的两倍。
2.4 一次完整探测日志里应该包含什么
打开工具生成的scan.json,里面至少应该有四类字段:
installed_products:已登记的卸载项,包括名称、版本号、发布者、卸载命令。orphan_files:按目录扫描得到的未登记文件,标注风险等级low或high。registry_keys:待清理注册表项,标注是否为共享引用。installer_cache:安装服务缓存里的产品代码,标注旧版本残留。
我判断一个卸载工具是否合格,会重点看registry_keys里有没有“共享引用计数”这个字段。没有这个字段,说明它清注册表时是无差别的,一旦误伤公共组件,你重装完新版本后老版本区域可能直接打不开。有共享引用计数,才说明工具对注册表清理做了依赖分析。
到这里,原理部分已经够用。下面进入操作环节,按单机和批量两种场景分别讲参数、步骤和验证方式。
3. 把卸载工具跑起来:单机清理与批量静默两条路径
原理到位后,关键是把工具跑对。Revit 卸载工具包内通常包含图形版和命令行版,图形版点击顺序看着简单,但参数不可见,出了问题很难复现。命令行版虽然丑一点,胜在每次执行的参数、输出、退出码都能留档。下面所有演示统一使用命令行名revit-purge,实际以 Release 包里的文件名为准。
3.1 单机场景:从扫描到重启的完整步骤
拿到工具后,第一步不是点“清理”,而是先扫描。管理员身份打开 PowerShell,进入工具目录后执行:
# 第一步:只扫描,不清理,结果写入 JSON,方便人工复核 revit-purge.exe --scan-only --log D:\revit_clean\scan.json--scan-only是只探测参数,不会对系统做任何修改;--log指定输出文件路径,JSON 格式里能看到发现的产品、目录残留和风险等级。这一步建议在正式清理的前一天做,先核对结果里有几项是你自己记得实际装过的版本。如果出现不认识的条目,不要急着清理,先确认它是共享组件还是别的软件留下的同名文件,再做决定。
清单确认完后,执行正式清理:
# 第二步:按默认备份策略清理,备份到 D 盘 revit-purge.exe --purge --backup-dir D:\backup\revit --log D:\revit_clean\clean.log--purge告诉工具执行清理,--backup-dir是备份目录。备份目录必须是非系统盘的本地 NTFS 分区,不能放 U 盘或网络盘,因为备份中包含注册表导出文件,FAT32 不支持部分权限属性。命令结束后看退出码:
- 0:清理完成,准备重启
- 2:有项目需要人工确认,查看日志
- 4:备份失败,强制中断
如果退出码不是 0,直接重启没有意义,先看日志里的异常项。清理完成后,我建议重启一次再尝试重装 Revit。原因是安装服务在系统重启后会重新加载组件配置,有些锁定的服务项不重启释放不了,这也是重装时最容易出问题的一环。
3.2 批量场景:静默参数与日志回传
给多台工作站做版本迁移时,逐台点击图形界面会累死人。工具包的静默模式就是为了批量场景准备的。命令行加入--silent后,不再弹出任何确认框,全程自动执行,检查点靠退出码和日志回传。这样可以把任务挂进计划任务,非工作时间统一跑。
一个典型的批量脚本如下:
@echo off REM 批量清理脚本:执行清理并将结果汇总到共享目录 set TOOL=D:\tools\revit-purge.exe set BACKUP=D:\backup set LOGDIR=\\file-server\revit_logs "%TOOL%" --silent --purge --backup-dir "%BACKUP%\%COMPUTERNAME%" --log-dir "%LOGDIR%" if %errorlevel% equ 0 ( echo %COMPUTERNAME%,%date%,success >> "%LOGDIR%\result.csv" ) else ( echo %COMPUTERNAME%,%date%,failed-%errorlevel% >> "%LOGDIR%\result.csv" )这段批处理的关键是%COMPUTERNAME%,用它给每台机器的备份目录命名,避免多台机器在同一个共享目录里互相覆盖。--log-dir指定日志目录,工具会在目录下按机器名生成单独文件。最后的 if 判断把执行结果追加进 CSV,运维时一眼看出哪些机器失败、失败代号是多少。注意批处理里的%errorlevel%必须紧跟执行命令使用,中间不能插入其他命令,否则读到的是前一条命令的退出码,结果判定就会翻车。
批量环境还有一层细节:跑清理前,先确认这台机器上有没有正在运行的 Revit 相关进程。脚本里可以加一行taskkill /f /im Revit.exe,但要注意,有些后台协同组件进程名不叫 Revit,得从工具扫描报告的running_process字段里抄过来。
3.3 常用参数说明
| 参数 | 作用 | 默认值 | 注意事项 |
|---|---|---|---|
--scan-only | 只扫描不清理 | 无 | 生成 JSON 报告,适合审计 |
--purge | 实际执行清理 | 关闭 | 必须与备份参数配合 |
--backup-dir | 备份目录 | 无 | 必须是本地 NTFS,避免中文长路径 |
--silent | 静默执行 | 关闭 | 用于批量部署 |
--log-dir | 日志目录 | 工具当前目录 | 建议使用共享路径回传 |
--keep-license | 保留许可相关配置 | 关闭 | 清理后仍想沿用原授权时开启 |
--skip-component | 跳过指定共享组件 | 无 | 当检测到组件被其他版本引用时使用 |
参数使用原则:第一次运行不要带--purge,只跑--scan-only;第二次清理时再带备份参数。批量环境不要图省事跳过备份,因为一旦共享组件误删,受影响的不止一台机器。另外要注意--keep-license在单机重装场景里通常不建议开,因为旧授权信息可能是对新版本无效的,保留反而让安装程序误以为许可服务已存在。
3.4 日志回传怎么分析
批量跑完只看 result.csv 还不够。每个失败机器的日志文件放在共享日志目录里,建议按“产品探测 → 备份 → 清理 → 校验”四段去看时间戳。常见的失败模式是卡在备份阶段,日志结尾是权限错误;另一种是清理阶段时报某个组件拒绝访问,日志里会给出占用进程名。
我会把 result.csv 拉下来后,用表格透视按退出码分组,先处理4-备份失败的机器,因为这类机器大概率是磁盘或路径问题,处理成本最低。然后再处理2-需人工确认的机器,这类机器通常是共享组件引用冲突,需要单独跑深度扫描。
3.5 执行清理前要不要先停相关服务
这一步经常被忽略。Revit 卸载工具清理的对象不只有安装目录,还有后台渲染服务、许可服务和协同同步服务。这些服务如果处于运行状态,文件会被系统标记为占用,清理阶段就会出现“拒绝访问”的假象。我一般会在批量脚本里先停止服务:
# 停掉与 Revit 相关的后台服务,名称以工具探测报告为准 sc stop "RevitBackgroundService" sc stop "RevitLicensingService"注意别把所有带 Revit 的服务都停掉,有些公共服务其他软件也在用。最稳妥的做法是先到工具生成的scan.json里看running_service字段,再按字段里的名称逐个停。服务停不下来时,不用强行 kill,直接重启机器后让清理工具在启动阶段接管,同样能解决占用问题。
4. 常见问题排查:卸载工具误报、卡死、备份失败四连坑
前面章节解决的是“正常跑”,下面这几条解决的是“跑歪了”。每一条我都按现象、原因、解决的顺序整理,方便你对着日志直接定位。
4.1 误报“未安装 Revit”:版本位数与产品代码不匹配
现象:工具扫描后提示“未在系统中检测到 Revit”,但机器明明装过,控制面板卸载列表里也还能看到。
原因:这类误报大多出在注册表视图差异上。32 位组件的卸载信息写在WOW6432Node分支,64 位组件的卸载信息写在默认分支;如果工具只读其中一个分支,就会漏掉另一半。另外,不同语言环境的DisplayName可能带了额外的本地化后缀,按固定前缀匹配也会失手。
解决:遇到这种情况,不要在扫描结果里硬找。先手动执行第 2 章的注册表查询命令,确认两个分支下到底还有几个卸载项。确认存在后,把工具切到深度扫描模式,让它不依赖卸载列表,直接按目录关键字和安装服务缓存反查。如果工具没有深度扫描功能,就先用注册表查出的UninstallString手动执行一遍卸载命令,再重新扫描。这里有个细节:DisplayName里带“Revit”的项不一定是主程序,可能是某个语言包或示例库,清理时别见一个删一个。
4.2 清理卡在“正在配置系统安装服务”
现象:清理执行到一半,界面停在“正在配置系统安装服务”很久不动,日志最后一行是某个组件的修复请求。
原因:这是典型的安装服务缓存残留问题。某个组件在产品登记里仍处于“存在”状态,卸载工具想删除它时,系统安装服务反而认为组件缺失,触发修复流程。修复流程会尝试重新配置整个组件,和清理线程互相争抢文件,于是卡住。
解决:不要立即杀进程,先观察 3 到 5 分钟。如果进度条完全没动,再打开任务管理器,把占用 Revit 目录的进程全部结束,然后在工具里跳过这个组件的清理,等重启后单独处理。处理方式是用msiexec /x指定产品代码强制移除,再回到工具重新扫描。如果是批量环境,把这台机器标记为失败待处理,不要让它参与后续自动清理,否则它会一直卡在修复流程里,把日志汇总表全部污染。重启前把安装服务设为手动启动,再改回自动,也是让缓存重置的土办法。
4.3 备份目录写入失败导致清理中断
现象:选择备份目录后,工具在备份阶段报“拒绝访问”或“磁盘空间不足”,清理直接中断,日志缺失。
原因:我遇到过两种情况,一是备份目录放在系统盘,系统开启了用户账户控制保护,工具进程权限写不进去;二是备份路径太长,超过系统默认路径长度限制,创建多级子目录失败,这种情况在备份文件名包含中文或空格时尤其容易触发。
解决:备份目录放在 D 盘根目录下的一级目录,例如D:\bk_revit,路径越短越安全。运行前先手动新建目录,确认系统能正常写入。磁盘空间方面,最少留出待清理软件安装目录两倍的空间,因为备份要同时存文件副本和注册表导出两份数据。另外要检查备份目录所在磁盘是否被安全策略挂起,这类环境里工具拿到的是虚拟磁盘句柄,写文件很容易中途失败。清理完不要马上删备份,至少保留到重装成功后一周。
4.4 重装后启动正常,但激活信息突然失效
现象:Revit 重装成功,界面能打开,但启动后提示需要重新登录或激活,原授权信息没了。
原因:跟清理粒度有关。部分工具为了追求“彻底”,把许可相关注册表也归入待清理列表;或者备份恢复时用旧备份,把重装前刚写入的新授权覆盖掉。两种表现不同:前者直接出激活向导,后者提示许可证文件版本不匹配。
解决:清理前检查工具是否有--keep-license类参数,有就直接开启。没有的话,清理完成后先导出当前许可状态,再重装。重装后恢复许可记录时,优先恢复注册表项而不是整个备份目录,避免把安装缓存也一起回滚。若已经失效,重新激活即可,最好确保这台机器还能正常联网。这里的经验是:离线授权才值得保留,网络授权让新版本自动配置反而更省事。
5. 避坑指南:备份策略、注册表粒度与系统还原点的优先级
常见问题排查解决的是“已经出事怎么办”,这一章讲的是“怎么让自己少出事”。重点就三个:备份怎么做、注册表清到什么程度、系统还原点放在哪一步。
5.1 备份不是后悔药只有一份才灵
Revit 卸载工具自带备份,默认通常是把待清理的文件复制到一个压缩包里,同时导出注册表项。但这里有个容易被忽略的点:备份目录本身如果和待清理软件在同一个分区,工具清理时一旦动了分区根目录的权限,备份也可能跟着遭殃。我在单机上通常把备份目录放在 D 盘独立文件夹,和 C 盘完全分开。
但这还不够。文件级备份只能恢复“被删掉的文件”,恢复不了“系统服务状态被改坏”的情况。所以我在跑清理工具之前,一定会先手工创建一个系统还原点。系统还原点负责系统级回滚,工具备份负责文件级回滚,两个层级互补。有人觉得还原点占空间没意义,真到安装服务被搞坏那天,你会发现这是唯一后悔药。
备份完成后还要做一次“恢复演练”,不需要真恢复整个目录,只验证备份文件能打开、注册表导出文件能正常双击导入就行。我见过不少备份目录里堆着 0 字节文件的情况,那种备份等于白做。
5.2 注册表清理的边界:别让推荐清理变成全家桶
Revit 卸载工具的注册表清除目标应该是与 Revit 产品关联的卸载项和孤儿 GUID,不是所有包含“Revit”字样的键。有些键是被公共组件共享的,比如字体库、渲染服务、通用材质库,这些数据在其他工具的卸载项里也会引用。某些工具为了“清得彻底”,会把搜索到的所有条目都标记为待清理项。如果你不人工复核,就可能在清理中把共享组件一起删除,造成其他版本异常。
避坑一:清理前在报告中强制查看“共享依赖”标记。避坑二:无法判断的条目直接勾选跳过,不要交给默认规则。避坑三:不要用注册表编辑器手动搜索并删除所有含“Revit”的键,那样会把软件厂商公共组件、右键菜单注册、文件关联全部误删。
正确的注册表清理粒度是这样:
- 主程序卸载键:清理。
- 补丁包的卸载键:清理。
- 共享材质库的引用键:保留。
- 许可服务的授权记录键:按
--keep-license参数决定。 - 文件关联和桌面图标注册:清理后重装会自动重建。
一条很实在的判断标准:如果一个注册表项同时出现在多个版本的产品清单里,那它一定是共享的,不要动。只有只在当前版本清单里出现的项,才值得清理。
5.3 系统还原点与卸载工具的配合顺序
顺序搞反了会出大事。标准做法是这样:
- 退出所有 Revit 相关进程,包括托盘图标。
- 手工创建系统还原点。
- 运行卸载工具的
--scan-only生成清单。 - 人工确认清单后,带备份参数执行清理。
- 重启系统。
- 重新扫描验证。
系统还原点必须放在清理工具之前,原因是还原点只能记录“创建时系统里已存在的文件”,如果先清理再建还原点,残留文件已经没了,还原点里自然也不会有。另外,清理过程中如果工具卡死,不要马上恢复备份,先恢复系统还原点,再看工具备份是否完整。我见过先恢复备份导致安装服务缓存又被旧版本覆盖的情况,最后只能重装系统,代价比想象中大得多。
| 时机 | 动作 | 用途 |
|---|---|---|
| 清理前 10 分钟 | 创建系统还原点 | 系统级回滚 |
| 清理前 5 分钟 | 运行工具备份 | 文件级回滚 |
| 清理后重启前 | 导出清理日志 | 定位失败点 |
| 重装成功后一周 | 再删备份目录 | 防止重装失败需要回滚 |
这张表是我自己的操作习惯。看起来多花十分钟,实际上能省掉后面一整天的重装排查时间。
6. 最后一步验证:一条命令确认 Revit 残留清干净再重装
清理完成只是第一步,重装前还差一道检查。不要直接双击安装包,先跑一下残留验证脚本,把目录、注册表、安装服务三个位置重新扫一遍。
# 重装前的残留验证:目录 + 注册表 $issues = @() $dirs = @( "$env:ProgramFiles\Revit", "$env:ProgramData\Revit", "$env:LOCALAPPDATA\Revit" ) foreach ($d in $dirs) { if (Test-Path $d) { $issues += "目录残留: $d" } } $uninst = @( "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" ) $items = Get-ItemProperty $uninst -ErrorAction SilentlyContinue foreach ($item in $items) { if ($item.DisplayName -like "*Revit*") { $issues += "注册表残留: $($item.DisplayName)" } } if ($issues.Count -eq 0) { "环境干净,可以重装 Revit。" } else { $issues }这段脚本只检查三个最顽固的目录和两个注册表分支,没覆盖安装服务缓存,因为不同系统版本查询方式不一致,建议以工具自带的验证报告为准。脚本输出为空,说明文件层和注册表层已经没有明显残留;还有输出,先看它是不是备份目录或工具自身所在目录,别把工具生成的备份当成残留给删了。
重装前还有一件小事:强制重启一次。很多清理动作要等系统启动阶段才能释放被锁定的文件,少这一步,即使残留清零,重装也可能在中间报错。从那以后,我每次拆这类工具都会强制把“清理 → 重启 → 重装前验证”走一遍,从不跳过重启,这习惯帮我躲过了好几次莫名奇妙的安装失败。希望帮到你。
本文还有配套的精品资源,点击获取