最近想更新自己的Win10PE,就去下载了个PE之后用DISM++改成自己想要的模样。
桌面、文件浏览器改显示大图标、开始列放左边等等都很容易。把设定改好,搜出设定的注册表位置、导出后,注入boot.wim就变成PE开机的预设了。这些我都已经实现了。
但我现在在模仿、改造原作者挂载Wim(来源)盘的方法。挂载了Wim盘,才能把放在Wim外面(但同盘)的驱动、程序载进来。
他就是用这个LetterSwap - Github
LetterSwap.exe /auto /SetLetter Y:\PE.ini /Log %Temp%\LetterSwap.log
/Log以及后面部分就是记录吧,不用看。”PE.ini“ 就是扫描目标。Y:\就是发现目标后配上的盘号。他这样一行码就搞好了,但我不满意,为何?
我个人习惯把boot.wim放ESP盘,因为系统SSD盘快、方便,而且现在系统灾难大多限在Windows以内。想重装,转boot到ESP里的PE Wim就够了。
ESP 一般不挂载,而且就算挂载了,LetterSwap也换不了它的盘号。我不清楚运作原理,我猜测像是它在注册表里[HKLM\MountedDevices]里找不到ESP盘,因为ESP盘不用一般格式写在里面,有些时候根本没写在里面。那我就想能不能用PECMD.ini 写几段码做到呢?但我写代码完全外行,就是很需要、方便自己的时候,写过几行。那就问AI吧🤣。
就发现了 OpenCode在输出的IFEX里放了ELSE 、然后现在,"FORX *"用{}嵌套 或 加"次数"就会失效。😳
ENVI &&Count=0 ENVI &&Outer=1 3 ENVI &&Inner=1 3 5 FORX * %Outer%,outerVar, FORX * %Inner%,innerVar, CALC &&Count=%Count%+1 MESS Count=%Count%\nOuter=%Outer% Inner=%Inner%
PECMD视窗执行后,显示
Count=6Outer=1 3 Inner=1 3 5
第一层2次 X 第二层3次 = 6次,对!
那我嵌个套试试?
ENVI &&Count=0 ENVI &&Outer=1 3 ENVI &&Inner=1 3 5 FORX * %Outer%,outerVar, {FORX * %Inner%,innerVar, CALC &&Count=%Count%+1} MESS Count=%Count%\nOuter=%Outer% Inner=%Inner%
Count=0Outer=1 3 Inner=1 3 5
只不过加了对{},就不行了。
不过这些都是题外话。主题是挂载WIM盘到Y:。
先扫ESP,扫到头一个就挂载,然后就停了,不再扫。如果扫了所有硬盘的ESP都没找到目标档案,然后才开始扫USB/DVD盘。一样是扫到头一个就挂载,然后就停了。求教!先行谢过!