|
你的8 PE里面 用于IMAGEX右键菜单的 MOUNT.CMD 好像 有点问题:
当对WIM 解包到磁盘安装时,调用 :input 子菜单:
- :input
- set input=
- set /p input=〉〉〉→
- if defined input (
- set "input=!input:"=!"
- call :input_1 "%~1"
- if defined input goto :eof
- )
- if /i "%~1"=="skip" goto :eof
- goto %0
复制代码
因为开了变量延时会造成 :mbr 在对WIM文件解包到磁盘分区 时 !input!附值 变成 skip? (?=真实的变量值)
- :mbr
- if /i not "%~1"=="/applyto" (if /i not "%~1"=="/refto" goto :eof)
- if not "%~p2"=="" goto :eof
- echo.&echo 输入“5”写入 NT5 引导,输入“6”写入 NT6 引导,输入其它跳过:&echo.
- call :input skip
- set bootsect=
- if exist "%Windir%\system32\bootsect.exe" (set bootsect=bootsect.exe) else (
- if exist y:\32B_APP\CGI\bootsect.exe (set bootsect=y:\32B_APP\CGI\bootsect.exe) else (
- if exist y:\X64_APP\CGI\bootsect.exe (set bootsect=y:\X64_APP\CGI\bootsect.exe) else (if not exist "%~dp0bootsect.exe" goto :eof)))
- if not defined bootsect set bootsect=bootsect.exe
- rem 假如输入5 此时变量的附值会变成 skip5
- if "!input!" equ "5" !bootsect! /NT52 %~d2
- rem 假如输入6 此时 !input! 等于Skip6
- if "!input!" equ "6" !bootsect! /NT60 %~d2
- goto :eof
复制代码
因为 :input 没有注意处理这个问题
建议更改为
- :input
- set input=
- set /p input=〉〉〉→
- if defined input if /i "%~1"=="skip" goto :eof
- if defined input (
- set "input=!input:"=!"
- call :input_1 "%~1"
- if defined input goto :eof
- )
- goto %0
复制代码
此外 mbr 的修改建议加强 在没有BOOTsect.exe 建议调用 BOOTice.exe
- :mbr
- if /i not "%~1"=="/applyto" (if /i not "%~1"=="/refto" goto :eof)
- if not "%~p2"=="" goto :eof
- echo.&echo 输入“5”写入 NT5 引导,输入“6”写入 NT6 引导,输入其它跳过:&echo.
- call :input skip
- set bootsect=
- if exist "%Windir%\system32\bootsect.exe" (
- set bootsect=bootsect.exe
- if "!input!" equ "5" bootsect.exe /NT52 %~d2
- if "!input!" equ "6" bootsect.exe /NT60 %~d2
- )
- rem 这是我自己WIN7BOOTice 的位置,你直载把这里改成你PE 附件里BOOTICE.exe 位置就行了
- if not defined bootsect (
- if exist %~dp0..\BOOTICEx86.exe (
- if "!input!" equ "5" ..\BOOTICEx86.exe /DEVICE=%~d2 /pbr /install /type=ntldr /boot_file=NTLDR
- if "!input!" equ "6" ..\BOOTICEx86.exe /DEVICE=%~d2 /pbr /install /type=bootmgr /boot_file=BOOTMGR
- )
- )
- goto :eof
复制代码
|
|