@echo off
title Rev:10.1.0.0
rem This script is called by x:WindowsSystem32Startnet.cmd – WinPE
rem *******************************************************************
rem FLASH_BIOS=1 Auto flash BIOS
rem FLASH_BIOS=0 Do not auto flash BIOS
rem *******************************************************************
rem ** 当键盘不为英语和中文键盘时,设置InputLocale=1可以在工厂模式下用扫码抢扫SN号**
@echo When the keyboard is not English or Chinese, set the InputLocale=1 to swipe the SN in factory mode
set InputLocale=0
rem **判断是否分区 0 判断分区 1 不判断
set Partitions =1
set FLASH_BIOS=0
rem *******************************************************************
set PPKG_FILE=1
set SPP_FILE=0
rem 设置SINGLE_OS为1 时刷单系统的重新格式话磁盘
set SINGLE_OS=1
rem 设置DualOS_OS为1时 刷双系统的会保留安卓的系统分区,不格式话磁盘
set DualOS_OS=0
set SINGLE_INSTANCE=1
rem 刷中性系统时设置成1
set Neutral=0
rem *******************************************************************
@echo.
@echo Running Intel Optimization powercfg for improved imaging times
@echo.
@echo call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
@echo.
if “%1″==”PXE” (
set WinPESource=y:
) else (
set WinPESource=%WinPESource%
)
@echo.
set SCRIPTS_PATH=%WinPESource%Scripts
set IMAGES_PATH=%WinPESource%Images
@echo.
rem *****************************************************************
rem List all the disks, then search the volumes of each one to see
rem which disks may have “Winpe” in the label. We will ignore that
rem disk and use the first disk without the Winpe label that we find.
rem *****************************************************************
@echo.>x:listdisk.txt
@echo list disk>>x:listdisk.txt
@echo exit>>x:listdisk.txt
echo x:listdisk.txt
@echo call diskpart /s x:listdisk.txt
call diskpart /s x:listdisk.txt>x:Disks.txt
if %ERRORLEVEL% NEQ 0 echo Diskpart error && goto :Error
rem Set Disk equal to blank to start
@echo.
rem
rem This line will write a diskpart script to select the disk and detail it’s contents.
rem We use this output to find a disk that does NOT have Winpe as the volume label.
rem That disk will have the OS installed to it. This way you can exclude USB from diskpart.
rem
rem This works around the issue where the USB key is sometimes enumerated as disk 0 and the
rem SSD is disk 1.
rem
@echo Select Disk which eMMC
call :SelectDisk
if “%Disk%”==”” echo eMMC not found && goto :ERROR
@echo.
@echo *****************************************************************
@echo Checkup SingleOS or DualOS or whether exist windows partiton
@echo *****************************************************************
rem create diskpart script for search windows partitions from emmc disk
@echo.>x:ListPar.txt
@echo select disk %Disk% >>x:ListPar.txt
@echo list partition >>x:ListPar.txt
@echo exit >>x:ListPar.txt
@echo.
rem run diskpart script
diskpart /s x:ListPar.txt >x:eMMCPar.txt
if %ERRORLEVEL% NEQ 0 echo Diskpart error && goto :Error
@echo.
rem SingleOS / DualOS switch
find “Partition 10” x:eMMCPar.txt >nul
if %ERRORLEVEL% NEQ 0 set OS=SingleOS&& goto artition
@echo Lis Vol>x:FindVol.txt
diskpart /s x:FindVol.txt>x:VolumeList.txt
rem set android volume hide
@echo. >x:HideVol.txt
@echo select disk %Disk%>>x:HideVol.txt
for /f “tokens=2,5” %%i in (‘type x:VolumeList.txt ^| find “RAW”‘) do (
if “%%j”==”Partition” (
@echo Select Volume %%i >>x:HideVol.txt
@echo attributes volume set hidden >>x:HideVol.txt
)
)
@echo call diskpart /s x:HideVol.txt
call diskpart /s x:HideVol.txt
rem ensure it’s DualOS,and check whether exist windows partition,if not:create the new windows partition
rem rem find “Partition 16” x:eMMCPar.txt >nul
rem rem if %ERRORLEVEL% NEQ 0 set OS=DualOS&& goto artition
@echo. >x:WinPar.txt
@echo. >x:DelPar.txt
@echo select disk %Disk%>>x:WinPar.txt
@echo select disk %Disk%>>x:DelPar.txt
for /f “skip=1 tokens=2” %%i in (‘type x:eMMCPar.txt ^| find “Partition”‘) do (
@echo select disk %Disk%>x:WinPar.txt
@echo select Partition %%i>>x:WinPar.txt
@echo detail partition >>x:WinPar.txt
@echo exit >>x:WinPar.txt
diskpart /s x:WinPar.txt>x:ParPro.txt
if %ERRORLEVEL% NEQ 0 echo Diskpart error && goto :Error
for /f %%j in (‘type x:ParPro.txt ^| find /c “de94bba4-06d1-4d40-a16a-bfd50179d6ac”‘) do (
if “%%j”==”1” echo select disk %Disk%>x:DelPar.txt
if “%%j”==”1” echo select partition %%i
if “%%j”==”1” echo select partition %%i >>x:DelPar.txt
if “%%j”==”1” echo delete Partition override >>x:DelPar.txt
if “%%j”==”1” echo exit >>x:DelPar.txt
if “%%j”==”1” diskpart /s x:DelPar.txt
)
for /f %%j in (‘type x:ParPro.txt ^| find /c “ebd0a0a2-b9e5-4433-87c0-68b6b72699c7″‘) do (
if “%%j”==”1” (
for /f %%k in (‘type x:ParPro.txt ^| find /c “RAW”‘) do (
if “%%k”==”0” echo select disk %Disk%>x:DelPar.txt
if “%%k”==”0” echo select partition %%i
if “%%k”==”0” echo select partition %%i >>x:DelPar.txt
if “%%k”==”0” echo delete Partition override >>x:DelPar.txt
if “%%k”==”0” echo exit >>x:DelPar.txt
if “%%k”==”0” diskpart /s x:DelPar.txt
)
)
)
for /f %%j in (‘type x:ParPro.txt ^| find /c “e3c9e316-0b5c-4db8-817d-f92df00215ae”‘) do (
if “%%j”==”1” echo select disk %Disk%>x:DelPar.txt
if “%%j”==”1” echo select partition %%i
if “%%j”==”1” echo select partition %%i >>x:DelPar.txt
if “%%j”==”1” echo delete Partition override >>x:DelPar.txt
if “%%j”==”1” echo exit >>x:DelPar.txt
if “%%j”==”1” diskpart /s x:DelPar.txt
)
)
if “%SINGLE_OS%”==”1” set OS=SingleOS&& goto artition
if “%DualOS_OS%”==”1” set OS=DualOS&& goto artition
rem set OS=DualOS&& goto artition
artition
@echo *****************************************************************
@echo Map drive letter for Install.wim
@echo *****************************************************************
set InstallPath=%IMAGES_PATH%&& echo “Found images folder at USB drive”
@echo.
rem Check InstallPath was found and there are images in it.
@echo.
setlocal enabledelayedexpansion
cd /d %InstallPath%
set num=””
for /f “delims=” %%i in (‘dir /a-d /b *.wim’) do (
set /a num+=1
if “!num!” == “!num!” (
set WIM_NAME!num!=%%~ni
set WIM_SIZE_NAME!num!=%%~zi
)
)
if NOT “%WIM_NAME3%”==”” echo Can not select *.WIM && goto :Error
setlocal enabledelayedexpansion
cd /d %InstallPath%
set num=””
for /f “delims=” %%i in (‘dir /a-d /b /on *.swm’) do (
set /a num+=1
if “!num!” == “!num!” (
set SWM_NAME!num!=%%~ni
set SWM_NUM=!num!
)
)
if NOT “%SWM_NUM%”==”” (
echo Found *.swm at images path
set TARGET_WIM=%SWM_NAME1%
set RE_WIM=%WIM_NAME1%
set RE_WIM_SIZE=%WIM_SIZE_NAME1%
if /i “%RE_WIM%”==”Winre” (
set RE_WIM=%WIM_NAME1%
set RE_WIM_SIZE=%WIM_SIZE_NAME1%
)
)
if “%SWM_NUM%”==”” (
echo Found *.wim at images path
if /i “%WIM_NAME1%”==”Winre” (
set Recoverys=1
set TARGET_WIM=%WIM_NAME2%
set RE_WIM=%WIM_NAME1%
set RE_WIM_SIZE=%WIM_SIZE_NAME1%
) else if /i “%WIM_NAME2%”==”Winre” (
set Recoverys=1
set TARGET_WIM=%WIM_NAME1%
set RE_WIM=%WIM_NAME2%
set RE_WIM_SIZE=%WIM_SIZE_NAME2%
) else (
set TARGET_WIM=%WIM_NAME1%
set RE_WIM_SIZE=480
)
)
@echo %TARGET_WIM%
if “%TARGET_WIM%”==”” echo The windows image name not specified && goto :Error
@echo.
set /a RE_WIM_SIZE=%RE_WIM_SIZE:~0,-6%
if %RE_WIM_SIZE% LSS 430 set /a RECOVERY_SIZE=480
if %RE_WIM_SIZE% GEQ 430 (
if %RE_WIM_SIZE% LSS 680 (
set /a RECOVERY_SIZE=%RE_WIM_SIZE%+320
) else (
set /a RECOVERY_SIZE=%RE_WIM_SIZE%+1024
)
)
rem if “%SINGLE_OS%”==”1” set OS=SingleOS
@echo.
@echo *****************************************************************
@echo Write the diskpart script now that we know what disk to use
@echo *****************************************************************
:: SingleOS
if “%OS%”==”SingleOS” (
@echo *****************************************************************
for /f “skip=1 tokens=2,4” %%c in (‘type x:eMMCDisk.txt’) do (
@echo %%c %%d>>x:diskpar.txt
)
@echo for /f ” tokens=2 delims= ” %%i in (‘type x:diskpar.txt ^| find “%Disk%”‘)
for /f ” tokens=2 delims= ” %%i in (‘type x:diskpar.txt ^| find “%Disk%”‘) do (
set diskSize=%%i
@echo %diskSize%
)
if %diskSize% gtr 200 (
if “%Partitions%”==”0” (
@echo call arSingleOS
call arSingleOS
) else (
echo call arLitSingleOS
call arLitSingleOS
)
) else (
@echo call arLitSingleOS
call arLitSingleOS
)
rem call arSingleOS
)
:: DualOS
if “%OS%”==”DualOS” (
@echo *****************************************************************
for /f “skip=1 tokens=2,4” %%c in (‘type x:eMMCDisk.txt’) do (
@echo %%c %%d>>x:diskpar.txt
)
for /f ” tokens=2 delims= ” %%i in (‘type x:diskpar.txt ^| find “%Disk%”‘) do (
set diskSize=%%i
@echo %diskSize%
)
if %diskSize% gtr 200 (
if “%Partitions%”==”0” (
@echo call arDualOS
call arDualOS
) else (
@echo call arLitDualOS
call arLitDualOS
)
) else (
@echo call arLitDualOS
call arLitDualOS
)
rem @echo call arDualOS
rem call arDualOS
)
@echo Winpart.txt now contains…..
type x:winpart.txt
@echo.
@echo *****************************************************************
@echo Setting up the partition table
@echo *****************************************************************
@echo call diskpart /s x:winpart.txt
diskpart /s x:winpart.txt
if %ERRORLEVEL% NEQ 0 echo Diskpart error && goto :Error
@echo.
@echo Making directories…
md w:recyclerscratch
if %ERRORLEVEL% NEQ 0 echo “Failed to make w:recyclerscratch directory” && goto :error
@echo.
md z:recoverywindowsre
if %ERRORLEVEL% NEQ 0 echo “Failed to make z:recoverywindowsre directory” && goto :error
@echo.
@echo *****************************************************************
@echo Applying the Windows image from the USB
@echo *****************************************************************
if “%SWM_NUM%”==”” (
:: DeployWIM
@echo call eployOS wim /EA
call eployOS wim /EA
) else (
:: DeploySWM
@echo call eployOS swm /EA
call eployOS swm /EA
)
goto :SetWinRE
:SetWinRE
@echo.
@echo *****************************************************************
@echo Move WinRE to Recovery Partition
@echo *****************************************************************
@echo.
@echo Modifying attributes of winre.wim so we can move it.
attrib w:WindowsSystem32recoverywinre.wim -s -h -a -r
if “%Recoverys%” ==”1″ (
@echo xcopy %InstallPath%WinreWinre.wim z:recoverywindowsre /y
xcopy %InstallPath%Winre.wim z:recoverywindowsre /y
if %ERRORLEVEL% NEQ 0 echo “Failed to copy winre.wim to z:recoverywindowsre” && goto :error
) else (
@echo if EXIST w:WindowsSystem32recoverywinre.wim move w:WindowsSystem32recoverywinre.wim z:recoverywindowsre
if EXIST w:WindowsSystem32recoverywinre.wim move w:WindowsSystem32recoverywinre.wim z:recoverywindowsre
if %ERRORLEVEL% NEQ 0 echo “Failed to move winre.wim to z:recoverywindowsre” && goto :error
)
@echo.
@echo.
@echo reset attributes now
attrib z:RecoveryWindowsrewinre.wim +s +h +a +r
@echo.
@echo *****************************************************************
@echo Setting the boot environment
@echo *****************************************************************
if “%OS%”==”SingleOS” (
@echo call w:WINDOWSSYSTEM32BCDBOOT w:WINDOWS /s s: /f all
call w:WINDOWSSYSTEM32BCDBOOT w:WINDOWS /s s: /f all
if %ERRORLEVEL% NEQ 0 echo “Failed to set boot information” && goto :error
)
if “%OS%”==”DualOS” (
@echo call w:WINDOWSSYSTEM32BCDBOOT w:WINDOWS
w:WINDOWSSYSTEM32BCDBOOT w:WINDOWS
if %ERRORLEVEL% NEQ 0 echo “Failed to set boot information” && goto :error
@echo call ualOSQ2S
call ualOSQ2S
)
@echo *****************************************************************
@echo Setting the recovery environment
@echo *****************************************************************
@echo w:windowssystem32reagentc /SetREImage /Path z:RECOVERYWINDOWSRE /target w:windows
w:windowssystem32reagentc /SetREImage /Path z:RECOVERYWINDOWSRE /target w:windows
if %ERRORLEVEL% NEQ 0 echo “Failed to set recovery information” && goto :error
@echo.
rmdir /s /q w:recycler
@echo.
if “%FLASH_BIOS%”==”1” goto :FLASH_BIOS
goto :END
:FLASH_BIOS
@echo.
@echo ********************************************
@echo Flashing BIOS…
@echo ********************************************
@echo.
@echo BIOS file FOUND at %InstallPath%BIOS
@echo.
if EXIST %InstallPath%BIOS*.bin xcopy /y %InstallPath%BIOS*.bin %SCRIPTS_PATH%Tools
if EXIST %InstallPath%BIOS*.rom xcopy /y %InstallPath%BIOS*.rom %SCRIPTS_PATH%Tools
for /r “%SCRIPTS_PATH%Tools” %%Z in (*.bin) do (
ren “%%Z” “%%~na.fd”
)
for /r “%SCRIPTS_PATH%Tools” %%Z in (*.rom) do (
ren “%%Z” “%%~na.fd”
)
if NOT EXIST %SCRIPTS_PATH%Tools*.fd echo “Can not find the BIOS file” && goto :error
:: Flash BIOS
if /i “%PROCESSOR_ARCHITECTURE%”==”x86” %SCRIPTS_PATH%ToolsH2OFFT-W.exe
if /i “%PROCESSOR_ARCHITECTURE%”==”amd64” %SCRIPTS_PATH%ToolsH2OFFT-Wx64.exe
del /q %SCRIPTS_PATH%Tools*.fd
if %errorlevel% NEQ 0 echo “Failed to flash BIOS” && goto :error
goto :END
:ERROR
color 4f
@echo.
@echo An error has been detected.
@echo.
@echo Input Ctrl + C to exit
pause >nul
goto :ERROR
:SelectDisk
@echo.>x:ListDisk.txt
@echo list disk >>x:ListDisk.txt
@echo exit >>x:ListDisk.txt
rem run diskpart script
diskpart /s x:ListDisk.txt >x:eMMCDisk.txt
for /f “skip=1 tokens=2” %%i in (‘type x:eMMCDisk.txt ^| find “Disk”‘) do (
@echo select disk %%i>x:DetailDisk.txt
@echo detail disk >>x:DetailDisk.txt
@echo exit >>x:DetailDisk.txt
@echo diskpart /s x:DetailDisk.txt>x:DiskInfo.txt
diskpart /s x:DetailDisk.txt>x:DiskInfo.txt
for /f “tokens=3” %%a in (‘type x:DiskInfo.txt ^| find “Type :”‘) do (
@echo Disk type :%%a
if “%%a”==”SD” set Disk=%%i && goto :EOF
if “%%a”==”SATA” set Disk=%%i && goto :EOF
)
)
rem set Disk=
goto :EOF
arSingleOS
@echo.>x:winpart.txt
@echo select disk %Disk%>>x:winpart.txt
@echo clean>>x:winpart.txt
@echo convert gpt>>x:winpart.txt
@echo create partition efi size=100>>x:winpart.txt
@echo format quick fs=fat32 label=”System”>>x:winpart.txt
@echo assign letter=”S”>>x:winpart.txt
@echo create partition msr size=128>>x:winpart.txt
rem @echo create partition primary >>x:winpart.txt
@echo create partition primary size=102400 >>x:winpart.txt
@echo format quick fs=ntfs label=”Windows”>>x:winpart.txt
@echo assign letter=”W”>>x:winpart.txt
@echo create partition primary >>x:winpart.txt
@echo format quick fs=ntfs label=”local disk”>>x:winpart.txt
@echo assign letter=”F”>>x:winpart.txt
@echo shrink desired=%RECOVERY_SIZE%>>x:winpart.txt
@echo create partition primary>>x:winpart.txt
@echo format quick fs=ntfs label=”Recovery”>>x:winpart.txt
@echo assign letter=”Z”>>x:winpart.txt
@echo set>>x:winpart.txt
@echo gpt attributes=0×8000000000000001>>x:winpart.txt
@echo exit>>x:WinPart.txt
goto :EOF
arLitSingleOS
@echo.>x:winpart.txt
@echo select disk %Disk%>>x:winpart.txt
@echo clean>>x:winpart.txt
@echo convert gpt>>x:winpart.txt
@echo create partition efi size=100>>x:winpart.txt
@echo format quick fs=fat32 label=”System”>>x:winpart.txt
@echo assign letter=”S”>>x:winpart.txt
@echo create partition msr size=128>>x:winpart.txt
@echo create partition primary>>x:winpart.txt
@echo format quick fs=ntfs label=”Windows”>>x:winpart.txt
@echo assign letter=”W”>>x:winpart.txt
@echo shrink desired=%RECOVERY_SIZE%>>x:winpart.txt
@echo create partition primary>>x:winpart.txt
@echo format quick fs=ntfs label=”Recovery”>>x:winpart.txt
@echo assign letter=”Z”>>x:winpart.txt
@echo set>>x:winpart.txt
@echo gpt attributes=0×8000000000000001>>x:winpart.txt
@echo exit>>x:WinPart.txt
goto :EOF
arDualOS
@echo.>x:winpart.txt
@echo select disk %Disk%>>x:winpart.txt
@echo create partition msr size=128>>x:winpart.txt
REM @echo create partition primary>>x:winpart.txt
@echo create partition primary size=65536 >>x:winpart.txt
@echo format quick fs=ntfs label=”Windows”>>x:winpart.txt
@echo assign letter=”W”>>x:winpart.txt
@echo create partition primary >>x:winpart.txt
@echo format quick fs=ntfs label=”local disk”>>x:winpart.txt
@echo assign letter=”F”>>x:winpart.txt
@echo shrink desired=%RECOVERY_SIZE%>>x:winpart.txt
@echo create partition primary>>x:winpart.txt
@echo format quick fs=ntfs label=”Recovery”>>x:winpart.txt
@echo assign letter=”Z”>>x:winpart.txt
@echo set>>x:winpart.txt
@echo gpt attributes=0×8000000000000001>>x:winpart.txt
@echo exit>>x:WinPart.txt
goto :EOF
arLitDualOS
@echo.>x:winpart.txt
@echo select disk %Disk%>>x:winpart.txt
@echo create partition msr size=128>>x:winpart.txt
@echo create partition primary>>x:winpart.txt
@echo format quick fs=ntfs label=”Windows”>>x:winpart.txt
@echo assign letter=”W”>>x:winpart.txt
@echo shrink desired=%RECOVERY_SIZE%>>x:winpart.txt
@echo create partition primary>>x:winpart.txt
@echo format quick fs=ntfs label=”Recovery”>>x:winpart.txt
@echo assign letter=”Z”>>x:winpart.txt
@echo set>>x:winpart.txt
@echo gpt attributes=0×8000000000000001>>x:winpart.txt
@echo exit>>x:WinPart.txt
goto :EOF
ualOSQ2S
if NOT EXIST w:RecoveryOEMBackupOEMScript.cmd echo.>w:RecoveryOEMBackupOEMScript.cmd
if NOT EXIST w:WindowsOEMScript.cmd echo.>w:WindowsOEMScript.cmd
echo if /i “%%PROCESSOR_ARCHITECTURE%%”==”x86” cmd.exe /c msiexec /passive /norestart /i %%WINDIR%%OEMInsydeQ2S_x86.msi >>w:WindowsOEMScript.cmd
echo if /i “%%PROCESSOR_ARCHITECTURE%%”==”x86” cmd.exe /c msiexec /passive /norestart /i %%WINDIR%%OEMInsydeQ2S_x86.msi >>w:RecoveryOEMBackupOEMScript.cmd
echo if /i “%%PROCESSOR_ARCHITECTURE%%”==”AMD64” cmd.exe /c msiexec /passive /norestart /i %%WINDIR%%OEMInsydeQ2S_x64.msi >>w:WindowsOEMScript.cmd
echo if /i “%%PROCESSOR_ARCHITECTURE%%”==”AMD64” cmd.exe /c msiexec /passive /norestart /i %%WINDIR%%OEMInsydeQ2S_x64.msi >>w:RecoveryOEMBackupOEMScript.cmd
echo REG ADD “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTimeZoneInformation” /v “RealTimeIsUniversal” /t REG_DWORD /d 1 /f >>w:WindowsOEMScript.cmd
echo REG ADD “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTimeZoneInformation” /v “RealTimeIsUniversal” /t REG_DWORD /d 1 /f >>w:RecoveryOEMBackupOEMScript.cmd
if /i “%PROCESSOR_ARCHITECTURE%”==”x86” xcopy /y /e %SCRIPTS_PATH%ToolsDualOSInsydeQ2S_x86.msi w:RecoveryOEMBackupOEM
if /i “%PROCESSOR_ARCHITECTURE%”==”x86” xcopy /y /e %SCRIPTS_PATH%ToolsDualOSInsydeQ2S_x86.msi w:WindowsOEM
if /i “%PROCESSOR_ARCHITECTURE%”==”amd64” xcopy /y /e %SCRIPTS_PATH%ToolsDualOSInsydeQ2S_x64.msi w:RecoveryOEMBackupOEM
if /i “%PROCESSOR_ARCHITECTURE%”==”amd64” xcopy /y /e %SCRIPTS_PATH%ToolsDualOSInsydeQ2S_x64.msi w:WindowsOEM
goto :EOF
eployOS
rem Extension Name
set EN=%1
rem Compact Switch
set CS=%2
rem EA Switch
set ES=%3
if /i “%EN%”==”swm” (
@echo call dism /apply-image /imagefile:”%InstallPath%%TARGET_WIM%.swm” /SWMFile:”%InstallPath%%TARGET_WIM%*.swm” /index:1 /applydir:w: /scratchdir:”w:recyclerSCRATCH” %CS% %ES%
call dism /apply-image /imagefile:”%InstallPath%%TARGET_WIM%.swm” /SWMFile:”%InstallPath%%TARGET_WIM%*.swm” /index:1 /applydir:w: /scratchdir:”w:recyclerSCRATCH” %CS% %ES%
if %errorlevel% NEQ 0 echo “Failed to deploy OS” && goto :error
) else (
@echo call dism /apply-image /imagefile:”%InstallPath%%TARGET_WIM%.wim” /index:1 /applydir:w: /scratchdir:”w:recyclerSCRATCH” %CS% %ES%
call dism /apply-image /imagefile:”%InstallPath%%TARGET_WIM%.wim” /index:1 /applydir:w: /scratchdir:”w:recyclerSCRATCH” %CS% %ES%
if %errorlevel% NEQ 0 echo “Failed to deploy OS” && goto :error
)
goto :EOF
:END
@echo.
@echo *****************************************************************
@echo Copy over Test tools to TEST_TOOL
@echo TEST_TOOL SHOULD BE DELETED PRIOR TO SHIPPING
@echo *****************************************************************
@echo %SCRIPTS_PATH%7za.exe x %WinpeSource%:TEST_TOOL.zip -oW:
@echo if EXIST %WinpeSource%TEST_TOOL.zip
ping 127.1 -n 3 > nul
if EXIST %WinpeSource%TEST_TOOL.zip (
if /i “%PROCESSOR_ARCHITECTURE%”==”x86” %SCRIPTS_PATH%7za.exe x %WinpeSource%TEST_TOOL.zip -oW:
if /i “%PROCESSOR_ARCHITECTURE%”==”amd64” %SCRIPTS_PATH%7za_x64.exe x %WinpeSource%TEST_TOOL.zip -oW:
)
@echo.
@echo *****************************************************************
@echo Copying over Unattend.xml to use on factory floor if it exists
@echo *****************************************************************
rem unattend.xml 应用
if /i “%Neutral%”==”0” (
@echo if EXIST %InstallPath%Unattend.xml copy %InstallPath%Unattend.xml w:WindowsPanther /y
if EXIST %InstallPath%Unattend.xml copy %InstallPath%Unattend.xml w:WindowsPanther /y
@echo if EXIST %InstallPath%BIOSUnattend.xml copy %InstallPath%BIOSUnattend.xml w:RecoveryOEMBackup /y
if EXIST %InstallPath%BIOSUnattend.xml copy %InstallPath%BIOSUnattend.xml w:RecoveryOEMBackup /y
) else (
@echo if EXIST %SCRIPTS_PATH%Unattend.xml copy %SCRIPTS_PATH%Unattend.xml w:WindowsPanther /y
if EXIST %SCRIPTS_PATH%Unattend.xml copy %SCRIPTS_PATH%Unattend.xml w:WindowsPanther /y
@echo if EXIST %SCRIPTS_PATH%ToolsUnattend.xml copy %SCRIPTS_PATH%ToolsUnattend.xml w:RecoveryOEMBackup /y
if EXIST %SCRIPTS_PATH%ToolsUnattend.xml copy %SCRIPTS_PATH%ToolsUnattend.xml w:RecoveryOEMBackup /y
)
@echo *****************************************************************
if EXIST W:RecoveryOEMBackupOEM*.jpg del /F /Q w:WindowsWebWallpaperTheme1img4.jpg | xcopy W:RecoveryOEMBackupOEM*.jpg “w:WindowsWebWallpaperTheme1” /y
rem *添加壁纸到设置里面是不需要了*
rem | move /y w:WindowsWebWallpaperTheme1img.jpg w:WindowsWebWallpaperTheme1img4.jpg
@echo *****************************************************************
@echo if EXIST %InstallPath%BIOSimg0.jpg xcopy %InstallPath%BIOSimg0.jpg w:WindowsWebWallpaper /y | xcopy %InstallPath%BIOSimg0.jpg w:RecoveryOEMBackup /y
if EXIST %InstallPath%BIOSimg0.jpg xcopy %InstallPath%BIOSimg0.jpg w:WindowsWebWallpaper /y | xcopy %InstallPath%BIOSimg0.jpg w:RecoveryOEMBackup /y
@echo *****************************************************************
@echo if EXIST %InstallPath%BIOSScript.cmd copy %InstallPath%BIOSScript.cmd w:RecoveryOEMBackupOEM /y
if EXIST %InstallPath%BIOSScript.cmd copy %InstallPath%BIOSScript.cmd w:RecoveryOEMBackupOEM /y
@echo if EXIST %InstallPath%BIOSSmode.cmd xcopy %InstallPath%BIOSSmode.cmd w:RecoveryOEMBackupOEM /y
if EXIST %InstallPath%BIOSSmode.cmd xcopy %InstallPath%BIOSSmode.cmd w:RecoveryOEMBackupOEM /y
@echo if EXIST %InstallPath%BIOSoemlogo.bmp xcopy %InstallPath%BIOSoemlogo.bmp w:WindowsOEM /y | xcopy %InstallPath%BIOSoemlogo.bmp w:RecoveryOEMBackup /y
if EXIST %InstallPath%BIOSoemlogo.bmp xcopy %InstallPath%BIOSoemlogo.bmp w:WindowsOEM /y | xcopy %InstallPath%BIOSoemlogo.bmp w:RecoveryOEMBackup /y
@echo if EXIST %InstallPath%BIOScsup.txt xcopy %InstallPath%BIOScsup.txt w:RecoveryOEMBackup /y | xcopy %InstallPath%BIOScsup.txt w:RecoveryOEMBackup /y
if EXIST %InstallPath%BIOScsup.txt xcopy %InstallPath%BIOScsup.txt w:RecoveryOEMBackup /y | xcopy %InstallPath%BIOScsup.txt w:RecoveryOEMBackup /y
if EXIST %InstallPath%BIOSDateTime.cmd copy %InstallPath%BIOSDateTime.cmd W:RecoveryOEMBackupOEM /y
@echo if EXIST %InstallPath%BIOSinfo copy %InstallPath%BIOSinfo w:windowsSystem32oobeinfo
if EXIST %InstallPath%BIOSinfo* xcopy /cherkyi %InstallPath%BIOSinfo* w:windowsSystem32oobeinfo | xcopy /cherkyi %InstallPath%BIOSinfo* w:RecoveryOEMBackupinfo
@echo *****************************************************************
@echo Copying over Unattend.xml to use on factory floor if it exists
@echo *****************************************************************
@echo if EXIST %InstallPath%LayoutModification.xml copy %InstallPath%LayoutModification.xml w:UsersDefaultAppDataLocalMicrosoftWindowsShell /y
if EXIST %InstallPath%LayoutModification.xml copy %InstallPath%LayoutModification.xml w:UsersDefaultAppDataLocalMicrosoftWindowsShell /y
if EXIST %InstallPath%DefaultLayouts.xml copy %InstallPath%DefaultLayouts.xml w:UsersDefaultAppDataLocalMicrosoftWindowsShell /y
if “%InputLocale%”==”1” (
DISM.exe /Image:w: /Set-InputLocale:en-us
)
@echo.
@echo *****************************************************************
@echo Copying over NON Scanstate Packages, if they exist.
@echo IF YOU COPY OVER SCANSTATE PPKG, THIS CAUSE IMAGE TO FAIL DURING RECOVERY
@echo *****************************************************************
@echo.
@echo if EXIST %InstallPath%*.ppkg copy %InstallPath%*.ppkg w:RecoveryCustomizations /y
if EXIST %InstallPath%*.ppkg copy %InstallPath%*.ppkg w:RecoveryCustomizations /y
@echo Apply PPKG
set PPKG_PATH=w:RecoveryCustomizations
if “%PPKG_FILE%”==”0” del /s /q %PPKG_PATH%usmt.ppkg
if “%SINGLE_INSTANCE%”==”1” (
@echo if EXIST w:RecoveryCustomizationsusmt.ppkg DISM /Apply-CustomDataImage /CustomDataImage:w:RecoveryCustomizationsusmt.ppkg /ImagePath:w: /SingleInstance
if EXIST w:RecoveryCustomizationsusmt.ppkg DISM /Apply-CustomDataImage /CustomDataImage:w:RecoveryCustomizationsusmt.ppkg /ImagePath:w: /SingleInstance
)
@echo.
@echo Apply… SPP
@echo if EXIST %InstallPath%*.spp copy %InstallPath%*.spp w:RecoveryCustomizations /y
if EXIST %InstallPath%*.spp copy %InstallPath%*.spp w:RecoveryCustomizations /y
set SPP_PATH=w:RecoveryCustomizations
if “%SPP_FILE%”==”1” (
setlocal enabledelayedexpansion
cd /d %SPP_PATH%
set num=””
for /f “delims=” %%i in (‘dir /a-d /b *.spp’) do (
set /a num+=1
if “!num!” == “!num!” (
@echo set PackagePath!num!=%%~ni
set PackagePath!num!=%%~ni
)
)
)
call |time>x:StopTime.txt
rem
rem Now parse both files to display the Start and Finish Time
rem
@echo.
for /f “tokens=5” %%A in (x:starttime.txt) do echo Script Start Time is %%A
for /f “tokens=5” %%A in (x:stoptime.txt) do echo Script Stop Time is %%A
@echo.
@echo *****************************************************************
@echo Image deployment COMPLETE. Type EXIT from Command
@echo Prompt to restart or turn off device.
@echo *****************************************************************
pause & Wpeutil Shutdown
rem exit