Wimlib直接按照列表文件删除BOOT.WIM包里面的文件夹并清理pe的WIM包并缩小体积的方法
本帖最后由 sairen139 于 2020-11-1 11:41 编辑Wimlib直接按照列表文件删除BOOT.WIM包里面的文件夹并清理整个pe的WIM包并缩小其体积的方法:
预先需要准备的工具有wimlib.exe(这里准备的是64位的如用32位请自备)和libwim-15.dll并放入同一个文件夹,然后创建一个批处理文件(第1步删除WIM包里的文件夹.CMD)内容如下:
%~dp0\wimlib update BOOT.WIM < rd.txt
pause
跟着创建一个rd.txt文本文件内容如下:
delete --recursive "\$Recycle.Bin"
delete --recursive "\Documents and Settings"
delete --recursive "\PerfLogs"
delete --recursive "\Windows\AppPatch"
delete --recursive "\Windows\Branding"
。。。等等的内容
最后创建另外一个批处理(第2步清理并缩小WIM体积.bat)内容如下:
%~dp0\wimlib optimize BOOT.WIM --recompress
pause
如此就能缩减pe的成品体积!
删除文件更简单在上文的rd.txt里直接添加要删除的文件的路径就行如下面最后两行所示:
delete --recursive "\$Recycle.Bin"
delete --recursive "\Documents and Settings"
delete --recursive "\PerfLogs"
delete --recursive "\Windows\AppPatch"
delete --recursive "\Windows\Branding"
delete "\autoexec.bat"
delete "\Windows\bfsvc.exe" 本帖最后由 2013koko 于 2020-10-31 17:28 编辑
楼主这个是适用单映像吧?请问install内有多个映像,如果想只保留一个映像,如何处理? 2013koko 发表于 2020-10-31 17:27
楼主这个是适用单映像吧?请问install内有多个映像,如果想只保留一个映像,如何处理?
试试类似这个命令:删除多映像里的卷2
wimlib-imagex delete D:\多映像在同一个.wim 2 --check
sairen139 发表于 2020-10-31 17:51
试试类似这个命令:删除多映像里的卷2
wimlib-imagex delete D:\多映像在同一个.wim 2 --check
感谢帮助,我试试 sairen139 发表于 2020-10-31 17:06
删除文件更简单在上文的rd.txt里直接添加要删除的文件的路径就行如下面最后两行所示:
delete --recursive ...
想要不管文件有没有存在都删一遍需加--force 参数如下所示:
delete --force --recursive "\$Recycle.Bin"
delete --force --recursive "\Documents and Settings"
delete --force --recursive "\PerfLogs"
delete --force --recursive "\Windows\AppPatch"
delete --force --recursive "\Windows\Branding"
delete --force "\autoexec.bat"
delete --force "\Windows\bfsvc.exe"
sairen139 发表于 2020-10-31 22:32
想要不管文件有没有存在都删一遍需加--force 参数如下所示:
delete --force --recursive "\$Recycle.Bi ...
!导出多映像WIM包里的卷1的所有目录和文件列表.bat的wimlib命令语句如下所示:
%~dp0\wimlib dir BOOT.WIM 1 > 1.txt
pause sairen139 发表于 2020-11-1 11:40
!导出多映像WIM包里的卷1的所有目录和文件列表.bat的wimlib命令语句如下所示:
%~dp0\wimlib dir BOOT. ...
这个方法也适用于制作精简系统的WIM包,如下图所示可以快速制作精简系统: rem 正向查找缺失
set Ins_mui=h:\install\Windows\System32\zh-CN
set Boot_mui=h:\boot\Windows\System32\zh-CN
set tMui=%1\zh-CN
if not exist %tMui% md %tMui%
for /f %%i in ('dir %1 /a:-d /b') do (
if not exist %tMui%\%%i.mui copy %Ins_mui%\%%i.mui %tMui%
if not exist %tMui%\%%i.mui copy %Boot_mui%\%%i.mui %tMui%
)
rem 反向查找多余
for /f %%i in ('dir %tMui% /a:-d /b') do if not exist %1\%%~ni del /q %tMui%\%%i
@echo off
rem 正向查找缺失
set Ins_mun=f:\install\Windows\SystemResources
set Boot_mun=f:\boot\Windows\SystemResources
set tMun=%1\SystemResources
if not exist %tMun% md %tMun%
for /f %%i in ('dir %1\System32 /a:-d /b') do (
if not exist %tMun%\%%i.mun copy %Ins_mun%\%%i.mun %tMun%
if not exist %tMun%\%%i.mun copy %Boot_mun%\%%i.mun %tMun%
)
rem 反向查找多余
for /f %%i in ('dir %tMun% /a:-d /b') do if not exist %1\System32\%%~ni del /q %tMun%\%%i
两个批处理,一个用来检查mui一个用来检查mun,只要把dll弄好了就行了。位置注意改,参数是目标文件夹。 这个倒是很直接,收藏下 wimlib删除 感谢分享 教程收藏
页:
[1]