main hdd format and set name


@echo off
@rem  This script is called by x:\Windows\System32\Startnet.cmd - WinPE
@echo.
@echo.
@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.
@echo.
@rem
@rem
@rem Home/Core:           37GNV-YCQVD-38XP9-T848R-FC2HD
@rem Pro:                 NF6HC-QH89W-F8WYV-WWXV4-WFG6P
@rem Enterprise:          GN7FR-4QK4T-8XPDY-P2RYF-QGP4G
@rem CHN SL:              7B6NC-V3438-TRQG7-8TCCX-H6DDY
@rem SL:                  NTRHT-XTHTG-GBWCG-4MTMP-HH64C

rem ***************************************
rem  Update by Leon  11.19.2018
rem  If EMMC is not exist then go to find
rem  SSD, all are not found go to error.
rem ***************************************

@echo sel disk 0 >x:\det_disk_0.txt
@echo det disk>>x:\det_disk_0.txt
@echo exit>>x:\det_disk_0.txt

@echo sel disk 1 >x:\det_disk_1.txt
@echo det disk>>x:\det_disk_1.txt
@echo exit>>x:\det_disk_1.txt

@echo sel disk 2 >x:\det_disk_2.txt
@echo det disk>>x:\det_disk_2.txt
@echo exit>>x:\det_disk_2.txt

@echo list disk>x:\listdisk.txt
@echo exit>>x:\listdisk.txt
@echo call diskpart /s x:\listdisk.txt
call diskpart /s x:\listdisk.txt>x:\Disks.txt
call diskpart /s x:\det_disk_0.txt>x:\disk0.txt
call diskpart /s x:\det_disk_1.txt>x:\disk1.txt
call diskpart /s x:\det_disk_2.txt>x:\disk2.txt
@echo.
@echo *****************************************************************
@echo  change usb letter to 'E'
@echo *****************************************************************
:USB
FIND /i "Type   : USB" x:\disk0.TXT
if errorlevel==0 goto SET_USB_0
FIND /i "Type   : USB" x:\disk1.TXT
if errorlevel==0 goto SET_USB_1
FIND /i "Type   : USB" x:\disk2.TXT
if errorlevel==0 goto SET_USB_2
GOTO PROC_DISK
:SET_USB_0
set USB_INDEX=0
GOTO PROC_USB
:SET_USB_1
set USB_INDEX=1
GOTO PROC_USB
:SET_USB_2
set USB_INDEX=2
GOTO PROC_USB
:PROC_USB
@echo select disk "%USB_INDEX%">x:\winpart.txt
@echo assign letter="E">>x:\winpart.txt
@echo exit>>x:\WinPart.txt
@echo call diskpart /s x:\winpart.txt
diskpart /s x:\winpart.txt
GOTO PROC_DISK

:DISK
FIND /i "Type   : SD" x:\disk0.TXT
if errorlevel==0 goto SET_DISK_0
FIND /i "Type   : SD" x:\disk1.TXT
if errorlevel==0 goto SET_DISK_1
FIND /i "Type   : SD" x:\disk2.TXT
if errorlevel==0 goto SET_DISK_2
FIND /i "Type   : SATA" x:\disk0.TXT
if errorlevel==0 goto SET_DISK_0
FIND /i "Type   : SATA" x:\disk1.TXT
if errorlevel==0 goto SET_DISK_1
FIND /i "Type   : SATA" x:\disk2.TXT
if errorlevel==0 goto SET_DISK_2
GOTO ERROR
:SET_DISK_0
set disk=0
GOTO FORMAT_HDD
:SET_DISK_1
set disk=1
GOTO FORMAT_HDD
:SET_DISK_2
set disk=2
GOTO FORMAT_HDD


:FORMAT_HDD
eCHO READY...
ECHO %DISK%
@echo *****************************************************************
@echo  format hdd and set name
@echo *****************************************************************
:SATA0
set HDD_INDEX=0
FIND /i "Type   : SATA" x:\disk0.TXT
echo SATA0 %errorlevel%
if errorlevel==0 goto PROC_HDD
:SATA1
set HDD_INDEX=1
FIND /i "Type   : SATA" x:\disk1.TXT
echo SATA1 %errorlevel%
if errorlevel==0 goto PROC_HDD
:SATA2
set HDD_INDEX=2
FIND /i "Type   : SATA" x:\disk2.TXT
echo SATA2 %errorlevel%
if errorlevel==0 goto PROC_HDD
goto DETMODE
:PROC_HDD
@echo select disk "%HDD_INDEX%">x:\winpart.txt
@echo clean>>x:\winpart.txt
@echo convert gpt>>x:\winpart.txt
@echo create partition primary>>x:\winpart.txt
@echo format quick fs=ntfs label="Local Disk">>x:\winpart.txt
@echo assign letter="D">>x:\winpart.txt
@echo set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac">>x:\winpart.txt
@echo gpt attributes=0x8000000000000001>>x:\winpart.txt
@echo exit>>x:\WinPart.txt
@echo *****************************************************************
@echo  Setting up the HDD partition table
@echo *****************************************************************
@echo call diskpart /s x:\winpart.txt
diskpart /s x:\winpart.txt


GOTO DETMODE
rem ***************************************


@rem Set Disk equal to blank to start
set disk=
@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  
for /f "skip=8 tokens=2" %%A in (x:\Disks.txt) do (
@echo sel disk %%A>x:\Par.txt
@echo det disk>>x:\Par.txt
@echo exit>>x:\Par.txt
if NOT "%%A"=="DiskPart..." call :ListPar %%A
)
if "%Disk%"=="" echo No disk found without a volume label of "Winpe"&& set disk=0
@echo Using Disk "%Disk%"
@echo.
@echo.
rem ***************************************
rem  Update by Leon 11.19.2018
rem ***************************************
:DETMODE
rem ***************************************
@echo.
@echo.
@rem  *****************************************************************
@rem    Detect if System is booted into UEFI mode or Bios mode 
@rem  *****************************************************************
for /f "tokens=2* delims= " %%A in ('reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') do set Firmware=%%B
@echo.
if %Firmware%==0x1 goto :Biosmode
if %Firmware%==0x2 goto :UEFImode
Goto :END
:UEFImode
@echo.
@rem ************************
@rem UEFI SECTION
@rem ************************
@echo The PC is booted in UEFI mode
@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=16>>x:\winpart.txt
@echo create partition primary>>x:\winpart.txt
@echo format quick fs=ntfs label="Local Disk">>x:\winpart.txt
@echo assign letter="W">>x:\winpart.txt
@echo shrink desired=1000>>x:\winpart.txt
@echo create partition primary>>x:\winpart.txt
@echo format quick fs=ntfs label="Recovery">>x:\winpart.txt
@echo assign letter="R">>x:\winpart.txt
@echo set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac">>x:\winpart.txt
@echo gpt attributes=0x8000000000000001>>x:\winpart.txt
@echo exit>>x:\WinPart.txt
Goto :WINPARTSECTION

:Biosmode
@rem ************************
@rem BIOS SECTION
@rem ************************
@echo The PC is booted in BIOS mode
@echo The PC is booted in BIOS mode>x:\Bios.txt
@echo.>x:\winpart.txt
@echo select disk "%Disk%">>x:\winpart.txt
@echo clean>>x:\winpart.txt
@echo create partition primary size=100>>x:\winpart.txt
@echo active>>x:\winpart.txt
@echo format quick fs=fat32 label="System">>x:\winpart.txt
@echo assign letter="S">>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 exit>>x:\winpart.txt
@echo.

:WINPARTSECTION
@echo Winpart.txt now contains.....
@echo.
type x:\winpart.txt
@echo.
@echo.
@echo *****************************************************************
@echo  Setting up the partition table
@echo *****************************************************************
@echo call diskpart /s x:\winpart.txt
diskpart /s x:\winpart.txt
@echo.
@echo.
@echo *****************************************************************
@rem  Map drive letter for Install.wim
@echo *****************************************************************
@echo.>x:\ListVol.txt
@echo List volume>>x:\ListVol.txt
@echo exit>>x:\ListVol.txt
@echo call diskpart /s x:\ListVol.txt
call diskpart /s x:\ListVol.txt>x:\Output.txt
@echo.
@echo.
@rem Go through each drive letter, looking for the images\Install.txt file
for /f "skip=8 tokens=3" %%A in (x:\Output.txt) do (
if exist %%A:\images\install.txt set InstallPath=%%A:\images&& echo "Found device with images folder and install.txt file"
)
@echo.
@echo.
@rem Check InstallPath was found and there are images in it.
if NOT EXIST %InstallPath%\Install.wim echo "Install.wim NOT found." && goto :Error
@echo Install.wim FOUND at %InstallPath%\images\install.wim
@echo.
@echo.
@echo Making directories...
md w:\recycler\scratch
if %errorlevel% NEQ 0 echo "Failed to make w:\recycler\scratch directory" && goto :error
@echo.
md r:\recovery\windowsre
if %errorlevel% NEQ 0 echo "Failed to make m:\recovery\windowsre directory" && goto :error
@echo.
@echo *****************************************************************
@echo  Applying the Windows image from the USB
@echo *****************************************************************
@echo call DISM /Apply-Image /ImageFile:%InstallPath%\install.wim /Index:1  /ApplyDir:w:\ /Compact /ScratchDir:w:\recycler\SCRATCH
call DISM /Apply-Image /ImageFile:%InstallPath%\install.wim /Index:1 /ApplyDir:w:\ /Compact /ScratchDir:w:\recycler\SCRATCH
if %errorlevel% NEQ 0 echo "Failed to apply image to w:" && goto :error
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo *****************************************************************
@rem  Move WinRE to Recovery Partition
@echo *****************************************************************
@echo.
@echo Modifying attributes of winre.wim so we can move it.
attrib w:\Windows\System32\recovery\winre.wim -s -h -a -r
@echo move w:\Windows\System32\recovery\winre.wim r:\recovery\windowsre
move w:\Windows\System32\recovery\winre.wim r:\recovery\windowsre
if %errorlevel% NEQ 0 echo "Failed to move winre.wim to r:\recovery\windowsre" && goto :error
@echo.
@echo reset attributes now
attrib r:\Recovery\Windowsre\winre.wim +s +h +a +r
@echo.
@echo.
@echo *****************************************************************
@echo  Setting the boot environment
@echo *****************************************************************
@echo call w:\WINDOWS\SYSTEM32\BCDBOOT w:\WINDOWS /s s: /f all
w:\WINDOWS\SYSTEM32\BCDBOOT w:\WINDOWS /s s: /f all
if %errorlevel% NEQ 0 echo "Failed to set boot information" && goto :error
@echo.
@echo.
@echo.
@echo *****************************************************************
@echo  Setting the recovery environment
@echo *****************************************************************
@echo w:\windows\system32\reagentc /SetREImage /Path r:\RECOVERY\WINDOWSRE /target w:\windows
w:\windows\system32\reagentc /SetREImage /Path r:\RECOVERY\WINDOWSRE /target w:\windows
if %errorlevel% NEQ 0 echo "Failed to set recovery information" && goto :error
@echo.
mkdir S:\EFI\OEM
xcopy /e /h /y S:\EFI\Microsoft\* S:\EFI\OEM\
del /a S:\EFI\OEM\Boot\BCD
bcdedit /createstore S:\BCD
bcdedit /store S:\BCD /create {bootmgr} /d "Windows Boot Manager"
bcdedit /store S:\BCD /set {bootmgr} device partition=S:
bcdedit /store S:\BCD /set {bootmgr} locale en-us
bcdedit /store S:\BCD /set {bootmgr} integrityservices Enable

bcdedit /store S:\BCD /create {11111111-1111-1111-1111-111111111111} /d "Windows Recovery" /device
bcdedit /store S:\BCD /set {11111111-1111-1111-1111-111111111111} ramdisksdidevice partition=R:
bcdedit /store S:\BCD /set {11111111-1111-1111-1111-111111111111} ramdisksdipath \Recovery\WindowsRE\boot.sdi

bcdedit /store S:\BCD /create {22222222-2222-2222-2222-222222222222} /d "Windows Recovery Environment" /application osloader
bcdedit /store S:\BCD /set {bootmgr} default {22222222-2222-2222-2222-222222222222}
bcdedit /store S:\BCD /set {bootmgr} displayorder {22222222-2222-2222-2222-222222222222}

bcdedit /store S:\BCD /set {default} device ramdisk=[R:]\Recovery\WindowsRE\winre.wim,{11111111-1111-1111-1111-111111111111}
bcdedit /store S:\BCD /set {default} path \Windows\System32\winload.efi
bcdedit /store S:\BCD /set {default} locale en-us
bcdedit /store S:\BCD /set {default} displaymessage "Recovery"
bcdedit /store S:\BCD /set {default} osdevice ramdisk=[R:]\Recovery\WindowsRE\winre.wim,{11111111-1111-1111-1111-111111111111}
bcdedit /store S:\BCD /set {default} systemroot \Windows
bcdedit /store S:\BCD /set {default} nx OptIn
bcdedit /store S:\BCD /set {default} bootmenupolicy Standard
bcdedit /store S:\BCD /set {default} winpe Yes

xcopy /h /y S:\BCD* S:\EFI\OEM\Boot\.
del /a S:\BCD*
@echo.
@echo.
@echo *****************************************************************
@echo  Copying over Unattend.xml to use on factory floor if it exists
@echo *****************************************************************
@echo if EXIST %WinPESource%Scripts\Unattend.xml copy %WinPESource%Scripts\Unattend.xml w:\Windows\Panther /y
if EXIST %WinPESource%Scripts\Unattend.xml copy %WinPESource%Scripts\Unattend.xml w:\Windows\Panther /y
@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 if EXIST %WinPESource%Scripts\*.ppkg copy %WinPESource%Scripts\*.ppkg r:\Recovery\Customizations /y
if EXIST %WinPESource%Scripts\*.ppkg copy %WinPESource%Scripts\*.ppkg r:\Recovery\Customizations /y
@echo.
@echo *****************************************************************
@echo  Copying over resetconfig.xml and assets, if they exist.
@echo *****************************************************************
@echo if EXIST %WinPESource%Scripts\Recovery\OEM\resetconfig.xml xcopy %WinPESource%Scripts\Recovery\*.* w:\Recovery /e /y
if EXIST %WinPESource%Scripts\Recovery\OEM\resetconfig.xml xcopy %WinPESource%Scripts\Recovery\*.* w:\Recovery /e /y
@echo.
@echo.
@echo *****************************************************************
@echo  Copying over LayoutModification.xml and, if it exist.
@echo *****************************************************************
@echo if EXIST %WinPESource%Scripts\LayoutModification.xml copy %WinPESource%Scripts\LayoutModification.xml w:\users\default\appdata\local\Microsoft\Windows\Shell\ /y
if EXIST %WinPESource%Scripts\LayoutModification.xml copy %WinPESource%Scripts\LayoutModification.xml w:\users\default\appdata\local\Microsoft\Windows\Shell\ /y
@echo.
@echo *****************************************************************
@echo  Copying over oobe.xml.
@echo *****************************************************************
@echo xcopy %WinPESource%Scripts\Recovery\OEM\Scripts\oobexml\Oobe\*.* w:\Windows\System32\oobe\ /e /y
xcopy %WinPESource%Scripts\Recovery\OEM\Scripts\oobexml\Oobe\*.* w:\Windows\System32\oobe\ /e /y
@echo.
xcopy %WinPESource%Scripts\Recovery\OEM\Scripts\csup.txt w:\Windows\ /e /y
@echo.
@echo.
@echo *****************************************************************
@echo  Trying to edit Registry for desktop Icons.
@echo *****************************************************************
reg load HKU\DEFAULTTEMP w:\users\default\ntuser.dat
reg add HKU\DEFAULTTEMP\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel /v {20D04FE0-3AEA-1069-A2D8-08002B30309D} /d 00000000 /t REG_DWORD /f
reg add HKU\DEFAULTTEMP\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel /v {59031a47-3f72-44a7-89c5-5595fe6b30ee} /d 00000000 /t REG_DWORD /f
reg add HKU\DEFAULTTEMP\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel /v {F02C1A0D-BE21-4350-88B0-7367FC96EF3C} /d 00000000 /t REG_DWORD /f
reg unload HKU\DEFAULTTEMP
@echo.
@echo.
@echo *****************************************************************
@echo  Copying over tool, if they exist.
@echo *****************************************************************
@echo if EXIST %WinPESource%Scripts\Recovery\OEM\resetconfig.xml xcopy %WinPESource%Scripts\TEST_TOOL\*.* w:\ /e /y
if EXIST %WinPESource%Scripts\Recovery\OEM\resetconfig.xml xcopy %WinPESource%Scripts\TEST_TOOL\*.* w:\ /e /y
@echo.
@echo.
@echo.
@echo *****************************************************************
@echo.
@echo.
@echo *****************************************************************
@echo  Image deployment COMPLETE. Type EXIT from Command
@echo  Prompt to restart or turn off device.
@echo *****************************************************************
goto :END

:ERROR
@echo.
@echo An error has been detected.
@echo. 
goto :END

:ListPar
@REM This section is to bring a disk number and use it to List Partitions
@echo.
set TempDisk=%1
diskpart /s x:\Par.txt>x:\ParOutput.txt
for /f "skip=26 tokens=4" %%A in (x:\ParOutput.txt) do (
if /i NOT "%%A"=="Winpe" set Disk=%TempDisk%
)
Goto :EOF

:END
@rem 
@rem  Get finish time so we can evaluate total WinPE phase time.
@rem
call |time>x:\StopTime.txt
@rem
@rem  Now parse both files to display the Start and Finish Time
@rem
@echo.
@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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值