本帖最后由 crist 于 2014-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:\BOOT\FINDSTR.EXE IF NOT EXIST %SYSTEMROOT%\SYSTEM32\FINDSTR.EXE COPY /Y %%I:\BOOT\FINDSTR.EXE %SYSTEMROOT%\SYSTEM32\ >NUL 2>NUL
- IF EXIST %%I:\BOOT\FORMAT.COM IF NOT EXIST %SYSTEMROOT%\SYSTEM32\FORMAT.COM COPY /Y %%I:\BOOT\FORMAT.COM %SYSTEMROOT%\SYSTEM32\ >NUL 2>NUL
- IF EXIST %%I:\BOOT\UREG.DLL IF NOT EXIST %SYSTEMROOT%\SYSTEM32\UREG.DLL COPY /Y %%I:\BOOT\UREG.DLL %SYSTEMROOT%\SYSTEM32\ >NUL 2>NUL
- IF EXIST %%I:\BOOT\MODE.COM IF NOT EXIST %SYSTEMROOT%\SYSTEM32\MODE.COM COPY /Y %%I:\BOOT\MODE.COM %SYSTEMROOT%\SYSTEM32\ >NUL 2>NUL
- IF EXIST "%SYSTEMROOT%\SYSTEM32\UREG.DLL" IF EXIST "%SYSTEMROOT%\SYSTEM32\MODE.COM" MODE CON: COLS=75 LINES=25
- )
- CLS
- echo ---------------------------------------------------------------------------
- echo 全新安装: Windows XP Professional With SP3
- echo.
- echo 特别提示:1. 使用PE安装系统时本ISO镜像不可放于USB设备之中!
- echo 2. 必须在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 ".\I386\WINNT32.EXE" echo WINNT32安装文件丢失 & goto File_Missing
- cls
- echo ---------------------------------------------------------------------------
- echo 全新安装: Windows XP Professional With SP3
- echo.
- echo 特别提示:1. 使用PE安装系统时本ISO镜像不可放于USB设备之中!
- echo 2. 必须在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 ".\I386\UNATTEND.TXT" echo 应答文件丢失 & goto File_Missing
- echo 请稍等,正在复制安装文件到 %drive_letter% 盘
- .\I386\WINNT32.EXE /SYSPART:%drive_letter%: /DUDISABLE /S:.\I386 /UNATTEND:.\I386\UNATTEND.TXT /MAKELOCALSOURCE /TEMPDRIVE:%drive_letter% /NOREBOOT
- cls
- echo ---------------------------------------------------------------------------
- echo 提示信息:
- echo 1. Windows安装文件复制完毕
- echo 2. 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%\system32\shutdown.exe (
- shutdown -r -f -t 0 >nul 2>nul
- ) else (
- PECMD SHUT R >nul 2>nul
- )
-
- :EX
- exit
复制代码 目前发现当上述批处理保存在光盘或者pe的系统盘里面能顺利执行,但保存在本地磁盘时会出现无法正常格式化的现象 |