qqsxbg 发表于 2025-4-20 12:07

24H2 删除 DISM 中始终显示的两个(不可)回收项

本帖最后由 qqsxbg 于 2025-4-20 12:47 编辑

适用到26100.版本号大于1742



--------------------------------------------------
使用dism /online /cleanup-image /AnalyzeComponentStore命令 可查看 可回收的两个包



组件存储的实际大小 : 8.17 GB

    已与 Windows 共享 : 7.22 GB
    备份和已禁用的功能 : 952.65 MB
    缓存和临时数据 :0 bytes

上次清理的日期 : 2025-04-20 10:48:38

可回收的程序包数 : 2
推荐使用组件存储清理 : 是

--------------------------------------------------

此两个可回收程序包为
- [ Microsoft-Windows-FodMetadataServicing-Desktop-Metadata-Package~31bf3856ad364e35~amd64~~10.0.26100.1742]
- [ Package_for_RollupFix~31bf3856ad364e35~amd64~~26100.1742.1.10]

两个软件包“已被深度取代”






批处理代码如下
@ECHO Off
PUSHD %~DP0
NET SESSION >NUL 2>&1
IF %ERRORLEVEL% NEQ 0 (
    ECHO.
    ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
    ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
    "%TEMP%\Getadmin.vbs"
    DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL
    EXIT /B
)

:: 设置工作路径
set "MyPath=%CD%\Log"
if not exist "%MyPath%" mkdir "%MyPath%"

:: 初始化变量
set "PackageName=Package_for_RollupFix~31bf3856ad364e35~amd64~~26100.1742.1.10"
set "FoundIt=0"
set "Cont=0"
set "Zero=0"

:: 获取已安装包列表
echo 正在检查已安装的更新包...
dism /online /get-packages /format:table > "%MyPath%\WinPack.txt"

:: 检查指定包是否存在
findstr /i /c:"%PackageName%" "%MyPath%\WinPack.txt" >nul
if %errorlevel% equ 0 (
    set FoundIt=1
    echo 发现目标更新包: %PackageName%
) else (
    echo 未找到目标更新包: %PackageName%
    goto :exit
)

:: 用户确认
:confirm
set /p answ="找到更新包,是否继续?: "
if /i "%answ%"=="y" (
    set Cont=1
) else if /i "%answ%"=="n" (
    goto :exit
) else (
    goto :confirm
)

:: 执行清理操作
echo 正在清理并重置SxS存储
dism /online /cleanup-image /startcomponentcleanup /resetbase > "%MyPath%\CleaningTheStore_BeforeDel.txt"

echo 正在清理过时的服务包...
dism /online /Cleanup-Image /SPSuperseded > "%MyPath%\SPSuperseded_BeforeDel.txt

echo 正在分析组件存储大小...
dism /online /cleanup-image /analyzecomponentstore > "%MyPath%\AnalyzeTheStore_BeforeDel.txt"

:: 获取可回收包数量
for /f "tokens=6" %%a in ('findstr /c:"Number of Reclaimable Packages" "%MyPath%\AnalyzeTheStore_BeforeDel.txt"') do (
    set Nr=%%a
    echo 找到的可回收包数量: !Nr!
)

if !Nr! gtr 2 (
    echo 发现意外的包数量: !Nr!
    goto :exit
)

:: 删除确认
:delete_confirm
set /p answ="确定要删除此更新包吗?: "
if /i "%answ%"=="y" (
    echo 正在删除更新包...
    dism /online /remove-package /packagename:%PackageName% > "%MyPath%\DeletingPackage.txt
   
    echo 正在清理并重置SxS存储
    dism /online /cleanup-image /startcomponentcleanup /resetbase > "%MyPath%\CleaningTheStore_AfterDel.txt

    echo 正在清理过时的服务包...
    dism /online /Cleanup-Image /SPSuperseded > "%MyPath%\SPSuperseded_AfterDel.txt
   
    echo 正在分析组件存储大小...
    dism /online /cleanup-image /analyzecomponentstore > "%MyPath%\AnalyzeTheStore_AfterDel.txt
   
    for /f "tokens=6" %%a in ('findstr /c:"Number of Reclaimable Packages" "%MyPath%\AnalyzeTheStore_AfterDel.txt"') do (
      set FinalNr=%%a
    )
   
    if !FinalNr! equ 0 (
      echo SxS 存储清理成功!
    ) else (
      echo 清理未完成,剩余包数量: !FinalNr!
    )
) else if /i "%answ%"=="n" (
    goto :exit
) else (
    goto :delete_confirm
)

:: 显示最终结果
echo ------------------------------
echo DISM 组件存储分析:
dism /online /cleanup-image /analyzecomponentstore

echo ------------------------------

:exit
echo 正在退出脚本...
pause












1418186898 发表于 2025-4-20 12:16

收藏了 ,测试可用!

dlshangren 发表于 2025-4-20 12:37

本帖最后由 dlshangren 于 2025-4-20 12:40 编辑

我刚才用用dism /online /cleanup-image /AnalyzeComponentStore命令检查了一下,好像我这里4月18日已经删除了那两个什么文件。另外,我用你的批处理代码试了一下,运行完闪了一下就没了,系统空间也没变。

qqsxbg 发表于 2025-4-20 12:44

dlshangren 发表于 2025-4-20 12:37
我刚才用用dism /online /cleanup-image /AnalyzeComponentStore命令检查了一下,好像我这里4月18日已经删 ...






文件编码 要改成这样。(因为涉及到中文注释这些)


另外看你的图片。 你的有2个可删除的。。。。。

dxfjh 发表于 2025-4-20 14:18

收藏了 ,

hqokabc 发表于 2025-4-20 14:23

部署映像服务和管理工具
版本: 10.0.26100.1150

映像版本: 10.0.26100.3775

[==========================100.0%==========================]

组件存储(WinSxS)信息:

Windows 资源管理器报告的组件存储大小 : 17.46 GB

组件存储的实际大小 : 16.20 GB

    已与 Windows 共享 : 7.73 GB
    备份和已禁用的功能 : 8.47 GB
    缓存和临时数据 :0 bytes

上次清理的日期 : 2025-04-18 23:00:01

可回收的程序包数 : 8
推荐使用组件存储清理 : 是

armymangl 发表于 2025-4-20 14:26

正在检查已安装的更新包...
发现目标更新包: Package_for_RollupFix~31bf3856ad364e35~amd64~~26100.1742.1.10
找到更新包,是否继续?: y
正在清理并重置SxS存储

dlshangren 发表于 2025-4-20 14:47

qqsxbg 发表于 2025-4-20 12:44
文件编码 要改成这样。(因为涉及到中文注释这些)




用您做好的批处理文件清理了,不过系统盘空间大小还是没变。谢谢您辛苦劳动和指点!

杰@澈爱 发表于 2025-4-20 14:48

所以这两个包是啥啊 已被深度取代又是什么意思

zzwqd 发表于 2025-4-20 15:09

清理了1.3G。谢谢

ddfzl 发表于 2025-4-20 15:39

回复的不多啊,会不会有什么后遗症?

qqsxbg 发表于 2025-4-20 15:42

ddfzl 发表于 2025-4-20 15:39
回复的不多啊,会不会有什么后遗症?

目前没发现。

ddfzl 发表于 2025-4-20 16:38

qqsxbg 发表于 2025-4-20 15:42
目前没发现。

就怕以后更新有问题,我这里清理后减少1.4G空间{:5_264:}

anson4 发表于 2025-4-20 22:32

感谢分享!

flyingbird 发表于 2025-4-21 15:08

谢谢分享哈

0-07 发表于 2025-4-21 15:28

谢谢楼主分享

cskkkk 发表于 2025-4-21 15:58

谢谢分享

flyingbird 发表于 2025-4-25 20:29

谢谢分享,离线镜像能用不哈

clj891 发表于 2025-4-25 20:45

可回收的程序包数 : 22
推荐使用组件存储清理 : 是

xlincn 发表于 2025-4-25 21:09

有没副作用
页: [1]
查看完整版本: 24H2 删除 DISM 中始终显示的两个(不可)回收项