无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 684|回复: 39
打印 上一主题 下一主题

[求助] 用wimlib-imagex.exe批处理从instell.wim中提取所需文件……

[复制链接]
跳转到指定楼层
1#
发表于 昨天 15:25 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 nnail 于 2025-12-20 16:12 编辑

记得以前论坛上有人提供过这样的批处理,现在找不到了……有谁知道帮个忙……谢谢!
34#
发表于 1 小时前 | 只看该作者
学习一下
回复

使用道具 举报

33#
 楼主| 发表于 1 小时前 | 只看该作者
martin313 发表于 2025-12-21 10:23
如果改用wimlib-imagex.exe

@echo off

第三段的()为什么要分成这样……

点评

问deepseek  发表于 半小时前
回复

使用道具 举报

32#
 楼主| 发表于 1 小时前 | 只看该作者
martin313 发表于 2025-12-21 10:23
如果改用wimlib-imagex.exe

@echo off

好像有点明白了,就是要创建一个文件夹,然后提取文件存放在里面,再进行打包……谢谢!

另外--boot --compress=maximum --quiet 第一个明白没有这个Boot不能启动,第二个是最大压缩吗,第三个是什么意思?

点评

问deepseek,它会给你详细解答  发表于 半小时前
回复

使用道具 举报

31#
发表于 2 小时前 | 只看该作者
本帖最后由 ilikeyi 于 2025-12-21 13:40 编辑

这是提取 Install.wim 里的 WinRE.wim ,自己研究下改改吧。

  1. ForEach ($item in $Global:Primary_Key_Image.Index) {
  2.         if ($Script:Wimlib_Select_Index -Contains $item.ImageIndex) {
  3.                 Write-Host "  $($lang.MountedIndex): " -NoNewline
  4.                 Write-Host $item.ImageIndex -ForegroundColor Yellow

  5.                 Write-Host "  $($lang.Wim_Image_Name): " -NoNewline
  6.                 Write-Host $item.ImageName -ForegroundColor Yellow

  7.                 Write-Host "  $($lang.Wim_Image_Description): " -NoNewline
  8.                 Write-Host $item.ImageDescription -ForegroundColor Yellow

  9.                 Write-Host "  $($lang.Wim_Display_Name): " -NoNewline
  10.                 Write-Host $item.DISPLAYNAME -ForegroundColor Yellow

  11.                 Write-Host "  $($lang.Wim_Display_Description): " -NoNewline
  12.                 Write-Host $item.DISPLAYDESCRIPTION -ForegroundColor Yellow

  13.                 $wimlib = "$(Get_Arch_Path -Path "$($PSScriptRoot)\..\..\..\..\AIO\wimlib")\wimlib-imagex.exe"
  14.                 if (Test-Path -Path $wimlib -PathType Leaf) {
  15.                         <#
  16.                                 .创建保存到位置目录
  17.                         #>
  18.                         $RandomGuid = [guid]::NewGuid()

  19.                         $Local_Wim_Update_Folder_Sources = "$($UI_Main_Mask_Report_Save_To.Text)\$($RandomGuid)"
  20.                         Check_Folder -chkpath $Local_Wim_Update_Folder_Sources

  21.                         Start-Process -FilePath $wimlib -ArgumentList "extract ""$($Global:Primary_Key_Image.FullPath)"" $($item.ImageIndex) ""$($WimLib_SplieNew_Rule_path[2])"" --dest-dir=""$($Local_Wim_Update_Folder_Sources)""" -wait -WindowStyle Minimized

  22.                         $FullFilePath = "$($Local_Wim_Update_Folder_Sources)\WinRE.wim"
  23.                         if (Test-Path -Path $FullFilePath -PathType Leaf) {
  24.                                 Rename-Item -Path "$($Local_Wim_Update_Folder_Sources)\WinRE.wim" -NewName "$($Local_Wim_Update_Folder_Sources)\Index.$($item.ImageIndex).$($item.ImageName).WinRe.wim" -ErrorAction SilentlyContinue
  25.                         }

  26.                         <#
  27.                                 .刷新
  28.                         #>
  29.                         Wimlib_Image_Refresh_Sources_Rule -Guid $RandomGuid
  30.                 } else {
  31.                         Write-Host "  $($lang.Inoperable)`n" -ForegroundColor Red
  32.                 }
  33.         }
  34. }
复制代码

回复

使用道具 举报

30#
发表于 2 小时前 | 只看该作者
谢谢5楼了
回复

使用道具 举报

29#
发表于 3 小时前 | 只看该作者
学习学习
回复

使用道具 举报

28#
发表于 3 小时前 | 只看该作者
本帖最后由 martin313 于 2025-12-21 12:13 编辑

这个格式老早就有的啊,文件分拆而已

图片20251221120856.png (32.5 KB, 下载次数: 0)

图片20251221120856.png
回复

使用道具 举报

27#
发表于 4 小时前 | 只看该作者
martin313 发表于 2025-12-21 10:17
变了?不外乎2种,要么.wim,要么.esd
还变出第三种了吗?!

现在是install.swm

点评

这个格式老早就有的啊,格式分拆而已  详情 回复 发表于 3 小时前
回复

使用道具 举报

26#
发表于 5 小时前 | 只看该作者
如果改用wimlib-imagex.exe

@echo off
setlocal enabledelayedexpansion

echo 正在创建临时目录...
if not exist D:\Temp mkdir D:\Temp

echo 正在从install.wim提取文件...
for /f "usebackq delims=" %%i in ("D:\Test.txt") do (
    echo 提取: %%i
    wimlib-imagex.exe extract D:\install.wim 1 "%%i" --dest-dir="D:\Temp" --quiet
)

echo 正在打包为Boot.wim...
wimlib-imagex.exe capture D:\Temp D:\Boot.wim "Boot Image" --boot --compress=maximum --quiet

echo 清理临时目录...
rmdir /s /q D:\Temp

echo 完成!Boot.wim已保存到D:\
pause

点评

第三段的()为什么要分成这样……  详情 回复 发表于 1 小时前
好像有点明白了,就是要创建一个文件夹,然后提取文件存放在里面,再进行打包……谢谢! 另外--boot --compress=maximum --quiet 第一个明白没有这个Boot不能启动,第二个是最大压缩吗,第三个是什么意思?  详情 回复 发表于 1 小时前
回复

使用道具 举报

25#
发表于 5 小时前 | 只看该作者
jansh02 发表于 2025-12-21 10:14
现在25H2的install.wim扩展名变了

变了?不外乎2种,要么.wim,要么.esd
还变出第三种了吗?!
回复

使用道具 举报

24#
发表于 5 小时前 | 只看该作者
现在25H2的install.wim扩展名变了

点评

变了?不外乎2种,要么.wim,要么.esd 还变出第三种了吗?!  详情 回复 发表于 5 小时前
回复

使用道具 举报

23#
发表于 5 小时前 | 只看该作者
nnail 发表于 2025-12-21 09:28
deepseek不懂得问出来的结果不理想,还是得问懂行的……

deepseek 一下子就出来了:

@echo off
dism /Mount-Wim /WimFile:D:\install.wim /index:1 /MountDir:D:\Mount
for /f "usebackq delims=" %%i in ("D:\Test.txt") do (
    xcopy "D:\Mount\%%i" "D:\Extract\" /E /H /Y
)
dism /Unmount-Wim /MountDir:D:\Mount /discard
dism /Capture-Image /ImageFile:D:\Boot.wim /CaptureDir:D:\Extract /Name:"Boot Image" /Compress:max
回复

使用道具 举报

22#
 楼主| 发表于 6 小时前 | 只看该作者
martin313 发表于 2025-12-21 09:23
这么简单的批处理还觉得看不懂,提出来的要求却是很复杂。简单的2句命令就能实现???install.wim里如 ...

deepseek不懂得问出来的结果不理想,还是得问懂行的……

点评

deepseek 一下子就出来了: @echo off dism /Mount-Wim /WimFile:D:\install.wim /index:1 /MountDir:D:\Mount for /f "usebackq delims=" %%i in ("D:\Test.txt") do ( xcopy "D:\Mount\%%i" "D:\Extract  详情 回复 发表于 5 小时前
回复

使用道具 举报

21#
 楼主| 发表于 6 小时前 | 只看该作者
guies 发表于 2025-12-20 23:42
wimlib-imagex.exe extract "Win10.wim" 2 "/Users/Administrator/AppData" --dest-dir="C:%users\Administ ...

我只需要简单两句命令,比如从D盘的install.wim提取列表Test.txt的文件打包成Boot.wim并存放在D盘上。
能不能帮我整一个,越简单越好,太复杂了看不懂!
回复

使用道具 举报

20#
 楼主| 发表于 6 小时前 | 只看该作者
zhanglei1371 发表于 2025-12-21 07:42
用7z直接打开不就能提取了

一个Boot.wim一般有3千左右的文件,没有一个列表用眼睛一个个选吗?很有难度!
回复

使用道具 举报

19#
发表于 6 小时前 | 只看该作者
本帖最后由 martin313 于 2025-12-21 09:25 编辑
nnail 发表于 2025-12-21 09:21
你这个有点复杂看不懂,我只需要简单两句命令,比如从D盘的install.wim提取列表Test.txt的文件打包成Boot ...


这么简单的批处理还觉得看不懂,提出来的要求却是很复杂。简单的2句命令就能实现???install.wim里如果含有多个索引的映像呢,你准备取哪个???

想要用批处理实现你的要求,请自行deepseek

点评

deepseek不懂得问出来的结果不理想,还是得问懂行的……  详情 回复 发表于 6 小时前
回复

使用道具 举报

18#
 楼主| 发表于 6 小时前 | 只看该作者
martin313 发表于 2025-12-21 06:16
自行定义%wimFile%与%esdFile%与!index!与files.txt,其中files.txt就是你所谓的文件列表

@echo off

你这个有点复杂看不懂,我只需要简单两句命令,比如从D盘的install.wim提取列表Test.txt的文件打包成Boot.wim并存放在D盘上。

点评

这么简单的批处理还觉得看不懂,提出来的要求却是很复杂。 想要用批处理实现你的要求,请自行deepseek  详情 回复 发表于 6 小时前
回复

使用道具 举报

17#
发表于 7 小时前 来自手机 | 只看该作者
用7z直接打开不就能提取了

点评

一个Boot.wim一般有3千左右的文件,没有一个列表用眼睛一个个选吗?很有难度!  详情 回复 发表于 6 小时前
这个是笨方法,眼睛会看花,还容易搞错  发表于 7 小时前
回复

使用道具 举报

16#
发表于 9 小时前 | 只看该作者
本帖最后由 martin313 于 2025-12-21 06:17 编辑
nnail 发表于 2025-12-21 04:30
13楼,我记得是两句命令,第一句是从某路径的wim&esd提取文件,第二句是依据某文本中的列表提取。

自行定义%wimFile%与%esdFile%与!index!与files.txt,其中files.txt就是你所谓的文件列表

@echo off
setlocal enabledelayedexpansion
cd /d "%~dp0"

……

if exist "%wimFile%" (
echo.
    echo 找到了 install.wim 文件。
echo.
    wimlib-imagex.exe extract "%wimFile%" !index! @files.txt --nullglob --no-acls
) else if exist "%esdFile%" (
echo.
    echo 找到了 install.esd 文件。
echo.
    wimlib-imagex.exe extract "%esdFile%" !index! @files.txt --nullglob --no-acls
) else (
echo.
    echo 未找到 install.wim 或 install.esd 文件。
echo.
    exit /b 1
)

点评

你这个有点复杂看不懂,我只需要简单两句命令,比如从D盘的install.wim提取列表Test.txt的文件打包成Boot.wim并存放在D盘上。  详情 回复 发表于 6 小时前
这个形式,其实还不够高级,不会自动取mui与mun文件,除非费劲在files文件列表里全部列出! 还是建议参考w2的批处理,自动智能取到mui与mun文件的  发表于 8 小时前
回复

使用道具 举报

15#
 楼主| 发表于 11 小时前 来自手机 | 只看该作者
13楼,我记得是两句命令,第一句是从某路径的wim&esd提取文件,第二句是依据某文本中的列表提取。

点评

自行定义%wimFile%与%esdFile%与!index!与files.txt,其中files.txt就是你所谓的文件列表 @echo off setlocal enabledelayedexpansion cd /d "%~dp0" …… if exist "%wimFile%" ( echo. echo 找到  详情 回复 发表于 9 小时前
回复

使用道具 举报

14#
发表于 15 小时前 | 只看该作者
学习学习
回复

使用道具 举报

13#
发表于 昨天 23:42 | 只看该作者
wimlib-imagex.exe extract "Win10.wim" 2 "/Users/Administrator/AppData" --dest-dir="C:\Users\Administrator"

点评

我只需要简单两句命令,比如从D盘的install.wim提取列表Test.txt的文件打包成Boot.wim并存放在D盘上。 能不能帮我整一个,越简单越好,太复杂了看不懂!  详情 回复 发表于 6 小时前
好像有点接近了,可是后面不应该是依据文本列表吗?有点看不懂!  发表于 11 小时前
回复

使用道具 举报

12#
发表于 昨天 19:33 | 只看该作者
123hefei 发表于 2025-12-20 16:48
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=448805

本坛的@lxl1638大神的作品wimtool(应该也 ...

感谢分享!
回复

使用道具 举报

11#
发表于 昨天 19:30 | 只看该作者
学习学习
回复

使用道具 举报

10#
发表于 昨天 19:27 | 只看该作者
不好搞~
回复

使用道具 举报

9#
发表于 昨天 18:37 | 只看该作者
学习一下
回复

使用道具 举报

8#
发表于 昨天 18:24 | 只看该作者
谢谢5楼分享
回复

使用道具 举报

7#
发表于 昨天 17:12 | 只看该作者

感谢分享
回复

使用道具 举报

6#
发表于 昨天 17:07 | 只看该作者
123hefei 发表于 2025-12-20 16:48
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=448805

本坛的@lxl1638大神的作品wimtool(应该也 ...

老师,大佬,你上来了啊。
等你的s2025好久了。

做好了没有啊?
先谢谢了!!!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-21 15:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表