批处理解包*.wim、*.msu、*.cab 格式的文件
技术问题
批处理解包*.wim、*.msu、*.cab 格式的文件
2024-07-26 09:18
批处理解包 *.esd、*.wim、*.msu、*.cab 格式的文件,批处理解压系统镜像
折腾安装镜像或更新补丁时总免不了解包处理,频繁手工操作甚是麻烦,此批处理解决问题
批处理文件内容及注解如下:
: ================================== -*-☆-*- ================================== : : 脚本功能: 解包 *.esd、*.wim、*.msu、*.cab 格式文件 : : 使用方法: 将该脚本文件放入待处理文件所在文件夹,而后以管理员身份运行即可。 : : ============================================================================== @Echo OFF & CLS & COLOR 1F & TITLE 正在处理文件包,请稍后 ... Call :DoErgodic "%~dp0" TITLE 已知类型的文件包处理完毕! Goto :Eof : ================================== -*-☆-*- ================================== : : 脚本功能: 遍历已知类型的文件包 : : 调用方法: Call :DoErgodic <文件夹> : : ============================================================================== :DoErgodic :-> 处理已知类型文件包 For %%e In (.esd .wim .msu .cab) Do ( If Exist "%~1*%%e" For /f %%i In ('Dir /a:-D /b "%~1*%%e"') Do Call :DoExtract "%~1%%i" ) Goto :Eof : ================================== -*-☆-*- ================================== : : 脚本功能: 解包处理 : : 调用方法: Call :DoExtract <待解包文件> : : ============================================================================== :DoExtract :-> 保存当前目录后更改当前目录,此举可防止因传给相关处理命令的参数超长而出错! PUSHD "%~dp1" :-> 显示待解包文件 Echo.&Echo =^> %~1 :-> 创建解包文件夹 If Not Exist "%~n1" (MD "%~n1" || (Echo 创建文件夹失败! && POPD && Goto :Eof)) :-> 解包处理 If "%~x1" EQU ".cab" ( :-> 处理 *.cab 文件 EXPAND "%~nx1" -F:*.* "%~n1" >nul 2>nul ) Else ( :-> 处理 *.esd、*.wim、*.msu 文件 Dism /Apply-Image /ImageFile:"%~nx1" /Index:1 /ApplyDir:"%~n1" /Quiet >nul 2>nul ) :-> 解出文件计数 Set _Cnt=0 For /f "delims=" %%i in ('Dir /a:-D /b "%~n1" 2^>nul') Do Set /a _Cnt+=1 :-> 显示处理结果 If Defined _Cnt (Echo.&Echo. - 解出 %_Cnt% 个文件) Else (Echo.&Echo. - 解包失败!) :-> 处理解出的文件包(若有的话) Call :DoErgodic "%~dpn1\" :-> 恢复当前目录 POPD Goto :Eof |
标签:
- 批处理解包 *.esd、*.wim、*.msu、*.cab 格式的文件
- 批处理解压系统镜像