2010eflying 发表于 2011-3-1 15:07:33

双击WIM文件自动挂载到Y盘

我用的是玄天大大的WIN7PE,以前能双击自动挂载到E盘,后来我改得面目全非了,现在双击只调出WIMTOOL,但是无法自动挂载,后来我写了一个REG文件代码如下
Windows Registry Editor Version 5.00

@="载入WIM到[外置程序]"
Windows Registry Editor Version 5.00

@="load"

@="载入WIM到[外置程序](&L)"

@="WimTool.EXE/MountRW\"%1\"\"eflying\"Y:\\外置程序"
这样开机后双击导入,然后双击WIM文件就能挂载到Y盘了.
在pecmd.ini里加入如下命令
    EXEC !=CMD.EXE /C REGEDIT /S "%ProgramFiles%\SetWIM\LoadWIM.reg"
但是不行,打开注册表,里面有导入reg文件了,郁闷,请大大们指点

[ 本帖最后由 2010eflying 于 2011-3-1 15:08 编辑 ]

玄天 发表于 2011-3-1 15:12:13

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=172255&extra=page%3D1

2010eflying 发表于 2011-3-1 15:41:49

谢谢玄天大大马上回复,最新版的我下了,但很不适应,特别把图标都放在那个桌面小工具里面,一开机又要配置一下,搞得更麻烦,你以前的PE我改来改去也觉得很满意了,那个双击WIM文件也能自动挂载到Y盘的内存盘里了,主要功能也都实现了,但就这点小问题郁闷死,每次开机要导入这个注册表,跪求大大再指点一下

2010eflying 发表于 2011-3-1 23:43:33

先给自己顶起来,不要让它沉了
好不容易搜到一个CMD代码
在PECMD.INI里引入(命令代码:EXEC !=%WinDir%\system32\SETWIM.CMD /REG)
代码文件如下:
@echo off
setlocal enableextensions
::PE下wim映像文件挂载/卸载/自动运行处理程序
::NicTense写于2010.04.25
::以下2个参数请根据PE的实际情况修改,分别是挂载目标目录和WIM文件的图标
set md=Y:\外置程序
set icon=%SystemRoot%\system32\wimtool,0
if "%~1"=="" goto end
if /i "%~1"=="/reg" goto reg
if /i "%~1"=="/unmountall" goto unmountall
pushd %~dp0
set m=
set w=%md%\%~n1
if /i "%~2"=="/unmount" goto unmount

if not exist %md%\卸载所有.lnk pecmd.exe LINK %md%\卸载所有,%SystemRoot%\system32\pecmd.exe,EXEC !setwim.cmd /unmountall,shell32.dll#32,卸载所有已挂载的WIM映像文件
if /i "%~2"=="/mount" goto mount
::双击打开或静默方式下
if not exist "%w%\" pecmd.exe MOUN %~1,%w%,1,%Temp%
if exist "%w%\setup.cmd" cd /d "%w%" & setup.cmd
if exist "%w%\init.ini" start pecmd.exe LOAD %w%\init.ini & goto end
if /i "%~2" neq "/silent" start explorer.exe /n,"%w%"
goto end

:mount
if exist "%w%\" (pecmd.exe MESS %w%已存在,请勿重复挂载!@提示#ok) else pecmd.exe MOUN %~1,%w% && pecmd.exe MESS 该镜像已成功挂载为%w%!@提示#OK) && start explorer.exe /n,"%w%"
goto end

:unmount
if not exist "%w%\" (pecmd.exe MESS %w%不存在,无需卸载!@提示#ok) else pecmd.exe MOUN %w% && rd /s /q "%w%" && pecmd.exe MESS 卸载成功!@提示#OK)
goto end

:unmountall
for /f %%a in ('dir %md%\* /ad /on /b') do pecmd.exe MOUN %md%\%%a && rd /s /q "%md%\%%a" && set m=y
if "%m%"=="y" (pecmd.exe MESS 卸载成功!@提示#OK) else pecmd.exe MESS 没有任何已挂载的镜像,无需卸载!@提示#OK)
if exist %md%\卸载所有.lnk del %md%\卸载所有.lnk>nul
goto end

:reg
reg add HKCR\.wim /ve /t REG_SZ /d wimfile /f
reg add HKCR\wimfile /ve /t REG_SZ /d WIM映像文件 /f
reg add HKCR\wimfile\DefaultIcon /ve /t REG_EXPAND_SZ /d "%icon%" /f
reg add HKCR\wimfile\shell\open /ve /f
reg add HKCR\wimfile\shell\open\command /ve /t REG_EXPAND_SZ /d "%SystemRoot%\system32\pecmd.exe EXEC !setwim.cmd \"%%1\"" /f
reg add HKCR\wimfile\shell\mount /ve /t REG_SZ /d 挂载WIM包到Y盘 /f
reg add HKCR\wimfile\shell\mount\command /ve /t REG_EXPAND_SZ /d "%SystemRoot%\system32\pecmd.exe EXEC !setwim.cmd \"%%1\" /mount" /f
reg add HKCR\wimfile\shell\unmount /ve /t REG_SZ /d 卸载已挂载的映像 /f
reg add HKCR\wimfile\shell\unmount\command /ve /t REG_EXPAND_SZ /d "%SystemRoot%\system32\pecmd.exe EXEC !setwim.cmd \"%%1\" /unmount" /f

:end
用上了这段代码,是可以双击挂载WIM文件到Y盘的外置程序下面了,应该可以说已经成功了,但这是用wimnt挂载的,能不能帮我把上面的REG代码改一下,改成WIMTOOL挂载,让右击WIM文件时的WIMTOOL菜单生效,我看了WIMTOOL文档,好像在VISTA上面不能用,是不是WIN7也是不能用,请大大再指点,另外在注册表里找不到右击WIM文件的WIMTOOL菜单,请问它是放在哪个文件

[ 本帖最后由 2010eflying 于 2011-3-1 23:50 编辑 ]

NicTense 发表于 2011-3-2 00:00:04

回复 #4 2010eflying 的帖子

这是用pecmd挂载的,和wimnt无关,如果你已经有wimtool的话,不需要用这个cmd代码,直接用wimtool的注册代码就可以了

修改pecmd.ini,增加2句,最好在explorer.exe那行之后

EXEC !=%SystemRoot%\system32\WimTool.EXE /Reg /M
REGI HKCU\SOFTWARE\WimTool\AutoMountPath=Y:\外置程序\

yjstone 发表于 2011-3-2 00:24:23

有这么复杂吗?如果只是想单个的WIM文件挂载到指定目录用WimTool设置一下WIM文件的目标挂载目录就可以了,如果想所有的WIM文件都挂载到指定目录则用楼上的方法。


[ 本帖最后由 yjstone 于 2011-3-2 00:34 编辑 ]

2010eflying 发表于 2011-3-2 01:58:56

什么时候又出新版的WIMTOOL了,真是晕,谢谢大大们指点,不过用了那段代码来挂载用一下也不错,先用逆天使大大的代码用一下试试,当然手动挂载也是会的,只是我想要让它傻瓜一点,双击就自动挂载到内存Y盘而已,也算是学习定制PE在探索吧,改到现在也算是比较完美了,再次谢谢大大们的指点,原来改造PE也挺爽的。

2010eflying 发表于 2011-3-2 02:08:11

再次谢谢逆天使大大指点,你的代码真的太爽了

2010eflying 发表于 2011-3-2 15:41:06

版主可以结贴了,多谢各位大大们指点,特别谢谢逆天使的代码,和玄天大大的PE

yyz2191958 发表于 2023-2-6 18:07:39

我看不明白
页: [1]
查看完整版本: 双击WIM文件自动挂载到Y盘