无忧启动论坛

标题: 这个dism批处理该怎么写? [打印本页]

作者: xzst110    时间: 7 天前
标题: 这个dism批处理该怎么写?
本帖最后由 xzst110 于 2024-11-18 19:45 编辑

rem 将install.wim文件路径赋值给变量,这里假设install.wim就在A文件夹下
set "installWimPath=A\install.wim"
rem 挂载点路径,假设在B文件夹下
set "mountPath=B"
rem 一些Appx文件所在文件夹路径,假设在C文件夹下
set "filesFolderPath=C"
rem 首先挂载install.wim文件到指定挂载点
dism /Mount-Image /ImageFile:"%installWimPath%" /Index:1 /MountDir:"%mountPath%"
rem 循环添加Appx包
for %%a in ("%filesFolderPath%\*.Appx") do (
    dism /Image:"%mountPath%" /Add-ProvisionedAppxPackage /PackagePath:"%%a" /SkipLicense
)
提示执行错误,不知道该怎么写?错在哪些地方,大神们能不能指点一下,万分感谢!
作者: l3429900    时间: 7 天前
用显示命令 echo 显示变量,看看变量对不对
作者: nttwqz    时间: 7 天前
/MountDir去掉引号试试
作者: xzst110    时间: 7 天前
挂载映像成功,集成APPx错误,不知错在哪?
作者: wangyibin    时间: 7 天前
你的脚本看起来基本上是正确的,但是有一些细节可能会导致执行错误或需要优化。以下是一些可能的问题和改进建议:

1、路径问题:

确保路径中没有包含空格。如果路径中有空格,你需要用引号括起来。
确认所有路径都是绝对路径或者从脚本所在的目录开始的相对路径。例如,如果脚本运行在D盘的某个目录下,A、B、C文件夹的路径需要相对于脚本的当前工作目录或使用绝对路径。

2、文件权限和路径存在:

确保你有足够的权限来读取和写入这些路径。
确认A\install.wim、B和C这些文件夹确实存在,并且B文件夹为空(或可以被覆盖),因为dism会在挂载时清空挂载点目录。

3、DISM命令的使用:

使用dism时,确保你有管理员权限,因为某些操作需要提升的权限。
/Index:1 表示你要挂载的WIM文件的索引。如果install.wim里有多个映像,你需要确保索引号是正确的。

4、错误处理:

你的脚本没有错误处理。如果某个命令失败了,脚本会继续运行,这可能导致后续的操作基于一个失败的状态。添加错误检查可以提高脚本的可靠性:

  1. dism /Mount-Image /ImageFile:"%installWimPath%" /Index:1 /MountDir:"%mountPath%" || goto :error

  2. for %%a in ("%filesFolderPath%*.Appx") do (
  3.     dism /Image:"%mountPath%" /Add-ProvisionedAppxPackage /PackagePath:"%%a" /SkipLicense || goto :error
  4. )
  5. goto :eof

  6. :error
  7. echo An error occurred.
  8. exit /b 1
复制代码

5、批处理文件路径遍历:

你的for循环是正确的,但是要确保%filesFolderPath%路径末尾没有多余的反斜杠,否则*.Appx可能会被解释为文件名而不是通配符。

6、脚本优化:

你可以考虑在脚本开始时检查是否有足够的磁盘空间来挂载WIM文件。
在操作完成后,添加一个卸载WIM的步骤,以防止挂载点被占用:

  1. dism /Unmount-Image /MountDir:"%mountPath%" /Commit
复制代码

7、调试信息:

在脚本中添加更多的echo语句来打印出你正在执行的命令和当前状态,这有助于调试。

确保你已经以管理员身份运行这个脚本,并且所有路径和权限都是正确的。修改后,你可以再次尝试运行脚本。


作者: wy-tooold    时间: 7 天前
学习了
作者: xzst110    时间: 7 天前
检查来检查去,也知道错在哪?
作者: magicgenius    时间: 7 天前
for /f %%a IN ('"dir /b %filesFolderPath%\*.Appx" 2^>nul')  do (
作者: wn168cn@163.com    时间: 7 天前
学习了 感谢5楼分享
作者: yyz2191958    时间: 7 天前
wangyibin 发表于 2024-11-18 20:23
你的脚本看起来基本上是正确的,但是有一些细节可能会导致执行错误或需要优化。以下是一些可能的问题和改进 ...

助人为乐
作者: xzst110    时间: 7 天前
for /f %%a IN ('"dir /b %filesFolderPath%\*.Appx" 2^>nul')  do (
,感谢感谢您!命令最后那个a要不要改成~na?
作者: magicgenius    时间: 7 天前
xzst110 发表于 2024-11-18 20:43
,感谢感谢您!命令最后那个a要不要改成~na?

不需要。
作者: ilikeyi    时间: 7 天前
1.    封装教程
                           1.1    Windows 11 24H2:实战封装教程,脱机封装多语言
                                    腾讯视频 | https://v.qq.com/x/page/i35683hz3yj.html
                                    爱奇艺 | http://www.iqiyi.com/v_1rfq8du8qho.html
                                    搜孤视频 | http://my.tv.sohu.com/us/201441345/586031095.shtml
                                    优酷 | https://v.youku.com/v_show/id_XNjQzMzQxMTcxMg==.html
作者: l3429900    时间: 7 天前
wangyibin 发表于 2024-11-18 20:23
你的脚本看起来基本上是正确的,但是有一些细节可能会导致执行错误或需要优化。以下是一些可能的问题和改进 ...

好详细的回答,领教了,错误处理学习了,多谢
作者: fzp070    时间: 7 天前
wangyibin 发表于 2024-11-18 20:23
你的脚本看起来基本上是正确的,但是有一些细节可能会导致执行错误或需要优化。以下是一些可能的问题和改进 ...

回复好详细,感谢大佬分享,学习了
作者: newswan    时间: 7 天前
发出错信息
作者: 1G空间100元    时间: 6 天前
真学到不少好东西
作者: 1G空间100元    时间: 6 天前
这个对封装系统好呀
作者: wang1126    时间: 6 天前
谢谢5楼分享
作者: xzst110    时间: 6 天前
本帖最后由 xzst110 于 2024-11-19 15:20 编辑
非常感谢各位大佬热心指导!!!

作者: szwp    时间: 6 天前
先在cmd里玩通后再玩批处理
作者: xzst110    时间: 5 天前
玩不来,不玩了。不过还是要感谢坛里的这些热心人。
作者: cqh    时间: 4 天前
学习




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3