
[求助]為何PE中批處理位置對運行結果有影響最后由 crist 于 -2-20 15:37偶然發現在pe中,同樣的批處理,放在光盤(iso鏡像虛擬盤)、pe系統盤(ramdisk虛擬盤)運行都能順利執行各項命令,但存放到本地磁盤運行卻會出錯。不知是什么原因呢?
- @echo off
- pushd %~dp0
- title %~n0
- color 0a
- FOR %%I IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
- IF EXIST %%I:BOOTFINDSTR.EXE IF NOT EXIST %SYSTEMROOT%SYSTEM32FINDSTR.EXE COPY /Y %%I:BOOTFINDSTR.EXE %SYSTEMROOT%SYSTEM32 >NUL 2>NUL
- IF EXIST %%I:BOOTFORMAT.COM IF NOT EXIST %SYSTEMROOT%SYSTEM32FORMAT.COM COPY /Y %%I:BOOTFORMAT.COM %SYSTEMROOT%SYSTEM32 >NUL 2>NUL
- IF EXIST %%I:BOOTUREG.DLL IF NOT EXIST %SYSTEMROOT%SYSTEM32UREG.DLL COPY /Y %%I:BOOTUREG.DLL %SYSTEMROOT%SYSTEM32 >NUL 2>NUL
- IF EXIST %%I:BOOTMODE.COM IF NOT EXIST %SYSTEMROOT%SYSTEM32MODE.COM COPY /Y %%I:BOOTMODE.COM %SYSTEMROOT%SYSTEM32 >NUL 2>NUL
- IF EXIST %SYSTEMROOT%SYSTEM32UREG.DLL IF EXIST %SYSTEMROOT%SYSTEM32MODE.COM MODE CON: COLS=75 LINES=25
- )
- CLS
- echo ---------------------------------------------------------------------------
- echo全新安裝: Windows XP Professional With SP3
- echo.
- echo特別提示:1. 使用PE安裝系統時本ISO鏡像不可放于USB設備之中!
- echo2. 必須在windows安裝程序復制安裝文件前拔出所有可存儲USB設備!
- echo.
- echo ---------------------------------------------------------------------------
- SET ST=
- SET /P ST= 是否安裝 Windows XP [Y/N]:
- echo.
- if not %ST%== set ST=%ST:~0,1%
- if /I %ST%==Y goto ST
- if /I %ST%==N goto EX
- goto EX
- :ST
- if not exist .I386WINNT32.EXE echoWINNT32安裝文件丟失 & goto File_Missing
- cls
- echo ---------------------------------------------------------------------------
- echo全新安裝: Windows XP Professional With SP3
- echo.
- echo特別提示:1. 使用PE安裝系統時本ISO鏡像不可放于USB設備之中!
- echo2. 必須在windows安裝程序復制安裝文件前拔出所有可存儲USB設備!
- echo.
- echo ---------------------------------------------------------------------------
- SET /P drive_letter= 第一步,輸入你需要安裝 Windows XP 的目標分區(如C):
- echo.
- if /I %drive_letter%== goto ST
- if /I not %drive_letter%== set drive_letter=%drive_letter:~0,1%
- set CHS=
- set /p CHS= 第二步,是否自動格式化 %drive_letter% 盤[Y/N]:
- IF /I %CHS%==Y GOTO FM
- IF /I %CHS%==N GOTO IN
- :IN
- ECHO.
- echo第三步,確認 %drive_letter% 盤已正確格式化并拔出U盤,按回車鍵開始復制安裝文件
- pause>nul
- if not exist .I386UNATTEND.TXT echo應答文件丟失 & goto File_Missing
- echo請稍等,正在復制安裝文件到 %drive_letter% 盤
- .I386WINNT32.EXE /SYSPART:%drive_letter%: /DUDISABLE /S:.I386/UNATTEND:.I386UNATTEND.TXT /MAKELOCALSOURCE /TEMPDRIVE:%drive_letter% /NOREBOOT
- cls
- echo ---------------------------------------------------------------------------
- echo提示信息:
- echo1. Windows安裝文件復制完畢
- echo2. windows安裝程序將在重啟后繼續直至完成
- echo.
- echo ---------------------------------------------------------------------------
- set next=
- set /p next= 是否立即重啟[Y/N]:
- if %next%== goto ex
- if not %next%== set next=%next:~0,1%
- if /I %next%==Y goto reboot
- if /I %next%==N goto ex
- goto EX
- :File_Missing
- echo安裝程序無法繼續,按任意鍵退出. . .
- PAUSE>NUL
- GOTO EX
- :FM
- echo正在格式化 %drive_letter% 盤,請稍候. . .
- FORMAT %drive_letter%: /FS:NTFS /Q /X /Y
- GOTO IN
- :reboot
- if exist %systemroot%system32shutdown.exe (
- shutdown -r -f -t 0 >nul 2>nul
- ) else (
- PECMD SHUT R >nul 2>nul
- )
- :EX
- exit
nclick="copycode($('code0'));">復制代碼
目前發現當上述批處理保存在光盤或者pe的系統盤里面能順利執行,但保存在本地磁盤時會出現無法正常格式化的現象