0% found this document useful (0 votes)
52 views5 pages

Install UWP

Uploaded by

helios.annon.555
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views5 pages

Install UWP

Uploaded by

helios.annon.555
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

@echo off

if not exist %~d0\OEM\AcerLogs md %~d0\OEM\AcerLogs


SET LogPath=%~d0\OEM\AcerLogs\Useralaunch.Log
ECHO.>>%LogPath%
ECHO %DATE% %TIME%[Log START] ============ %~dpnx0 ============ >> %LogPath%
SETLOCAL ENABLEDELAYEDEXPANSION
pushd "%~dp0"

md scratchdir
ECHO %DATE% %TIME%[Log TRACE] SET ImgPath=/online >>%LogPath% 2>&1
SET ImgPath=/online
if /i "%SystemDrive%" neq "%~d0" (
ECHO !DATE! !TIME![Log TRACE] Running in the WinPE or Offline, SET
ImgPath=/image:%~d0\ >>%LogPath% 2>&1
SET ImgPath=/image:%~d0\
ECHO !DATE! !TIME![Log TRACE] goto :InstallUWP >>%LogPath% 2>&1
goto :InstallUWP
)

REM for /f "skip=2 tokens=3" %%A in ('reg query HKLM\Software\OEM\Metadata /v


Brand') do set Brand=%%A
REM ECHO %DATE% %TIME%[Log TRACE] SET Custom DATA File NAME by Brand >> %LogPath%
REM SET CustomDATA=.\CDF\custom.data.acerlt.xml
REM if /I "%Brand%" == "Gateway" set CustomDATA=gateway-abb.json
REM if /I "%Brand%" == "Packard" set CustomDATA=packardbell-abb.json

if exist %~d0\OEM\FilterVCLibsList.txt del /f /q %~d0\OEM\FilterVCLibsList.txt >NUL


2>&1
SET TargetVCLib=Microsoft.VCLibs.140.00_

ECHO !DATE! !TIME![Log TRACE] dir /s /b "%TargetVCLib%*_x64*.appx" >>%LogPath%


2>&1
dir /s /b "%TargetVCLib%*_x64*.appx" >>%LogPath% 2>&1
(for /f "delims=" %%I in ('dir /s /b "%TargetVCLib%*_x64*.appx"') do (
pushd "%%~dpI"
ECHO !DATE! !TIME![Log TRACE] call :CheckingVCLib x64
call :CheckingVCLib x64
popd
)) >>%LogPath% 2>&1

ECHO !DATE! !TIME![Log TRACE] dir /s /b "%TargetVCLib%*_x86*.appx" >>%LogPath%


2>&1
dir /s /b "%TargetVCLib%*_x86*.appx" >>%LogPath% 2>&1
(for /f "delims=" %%I in ('dir /s /b "%TargetVCLib%*_x86*.appx"') do (
pushd "%%~dpI"
ECHO !DATE! !TIME![Log TRACE] call :CheckingVCLib x86
call :CheckingVCLib x86
popd
)) >>%LogPath% 2>&1

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::
:::: DO Not Trim Trailing space............
::::
:::: Each Set Value in the end exist the Space for dism split paramter
:::: set APPXPackagePath_X86=!APPXPackagePath_X86!/dependencypackagepath:"%%d"
::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:InstallUWP
IF /i "%PROCESSOR_ARCHITECTURE%" equ "AMD64" (
call :GetParameter
REM ECHO %DATE% %TIME%[Log TRACE] dism %ImgPath% /english /add-
provisionedappxpackage /packagepath:"!packagepath!" /licensepath:"!licensepath!" !
DependencyPackage_X64!/CustomDataPath:"%CustomDATA%" /region:all
/scratchdir:scratchdir>>%LogPath% 2>&1
REM dism %ImgPath% /english /add-provisionedappxpackage /packagepath:"!
packagepath!" /licensepath:"!licensepath!"
!DependencyPackage_X64!/CustomDataPath:"%CustomDATA%" /region:all
/scratchdir:scratchdir>>%LogPath% 2>&1
ECHO %DATE% %TIME%[Log TRACE] dism %ImgPath% /english /add-
provisionedappxpackage /packagepath:"!packagepath!" /licensepath:"!licensepath!" !
DependencyPackage_X64!/region:all /scratchdir:scratchdir>>%LogPath% 2>&1
dism %ImgPath% /english /add-provisionedappxpackage /packagepath:"!
packagepath!" /licensepath:"!licensepath!" !DependencyPackage_X64!/region:all
/scratchdir:scratchdir>>%LogPath% 2>&1
) else (
call :GetParameter
REM ECHO %DATE% %TIME%[Log TRACE] dism %ImgPath% /english /add-
provisionedappxpackage /packagepath:"!packagepath!" /licensepath:"!licensepath!" !
DependencyPackage_X86!/CustomDataPath:"%CustomDATA%" /region:all
/scratchdir:scratchdir>>%LogPath% 2>&1
REM dism %ImgPath% /english /add-provisionedappxpackage /packagepath:"!
packagepath!" /licensepath:"!licensepath!"
!DependencyPackage_X86!/CustomDataPath:"%CustomDATA%" /region:all
/scratchdir:scratchdir>>%LogPath% 2>&1
ECHO %DATE% %TIME%[Log TRACE] dism %ImgPath% /english /add-
provisionedappxpackage /packagepath:"!packagepath!" /licensepath:"!licensepath!" !
DependencyPackage_X86!/region:all /scratchdir:scratchdir>>%LogPath% 2>&1
dism %ImgPath% /english /add-provisionedappxpackage /packagepath:"!
packagepath!" /licensepath:"!licensepath!" !DependencyPackage_X86!/region:all
/scratchdir:scratchdir>>%LogPath% 2>&1
)
SET DISMErrCode=%errorlevel%
ECHO %DATE% %TIME%[Log TRACE] got return code [%DISMErrCode%] >>%LogPath%
if %DISMErrCode% neq 0 (
ECHO %DATE% %TIME%[Log TRACE] Return code is [%DISMErrCode%], pop up error
message to remind user. >>%LogPath%
call :ErrorMsg
) else (
ECHO %DATE% %TIME%[Log TRACE] Return code is [%DISMErrCode%], leave. >>
%LogPath%
)

:END
if exist scratchdir rd /s /q scratchdir
popd
SETLOCAL DISABLEDELAYEDEXPANSION
ECHO %DATE% %TIME%[Log LEAVE] ============ %~dpnx0 ============ >> %LogPath%
ECHO.>>%LogPath%
exit /b 0

:GetParameter
:GetPackagePath_Start
REM Prepare PackagePath
:Method1
ECHO %DATE% %TIME%[Log TRACE] dir /s /b *.appxbundle >> %LogPath%
dir /s /b *.appxbundle >> %LogPath% 2>&1
(for /f "delims=" %%d in ('dir /s /b *.appxbundle') do (
set packagepath=%%d
))>NUL 2>&1

:Method2
ECHO %DATE% %TIME%[Log TRACE] dir /s /b *.msix >> %LogPath%
dir /s /b *.msix >> %LogPath% 2>&1
(for /f "delims=" %%d in ('dir /s /b *.msix') do (
set packagepath=%%d
))>NUL 2>&1

:Method3
ECHO %DATE% %TIME%[Log TRACE] dir /s /b *.msixbundle >> %LogPath%
dir /s /b *.msixbundle >> %LogPath% 2>&1
(for /f "delims=" %%d in ('dir /s /b *.msixbundle') do (
set packagepath=%%d
))>NUL 2>&1

:Method4
ECHO %DATE% %TIME%[Log TRACE] dir /s /b *.appx>> %LogPath% 2>&1
dir /s /b *.appx>%~d0\OEM\Appx_list.txt 2>&1
if %errorlevel% neq 0 (
ECHO !DATE! !TIME![Log TRACE] *.appx not found, goto :GetPackagePath_END >>
%LogPath%
goto :GetPackagePath_END
)
type %~d0\OEM\Appx_list.txt >> %LogPath%
ECHO %DATE% %TIME%[Log TRACE] Getting Dependency Appx list>>%LogPath%
dir /s /b Microsoft*.appx>%~d0\OEM\DependencyAppx_list.txt 2>&1
type %~d0\OEM\DependencyAppx_list.txt >>%LogPath%
for /f "delims=" %%f in (%~d0\OEM\Appx_list.txt) do (
ECHO
------------------------------------------------------------------------------ >>
%LogPath%
ECHO !DATE! !TIME![Log TRACE] Checking [%%~nf] if main Package... >>%LogPath
%
ECHO !DATE! !TIME![Log TRACE] find /i "%%~nf" %~d0\OEM\
DependencyAppx_list.txt>>%LogPath% 2>&1
find /i "%%~nf" %~d0\OEM\DependencyAppx_list.txt>>%LogPath% 2>&1
if !errorlevel! neq 0 (
ECHO !DATE! !TIME![Log TRACE] [%%~nxf] did not exist in the %~d0\OEM\
DependencyAppx_list.txt, set as PackagePath>>%LogPath%
set PackagePath=%%f
) else (
ECHO !DATE! !TIME![Log TRACE] [%%~nxf] exist in the %~d0\OEM\
DependencyAppx_list.txt, not the main package. >>%LogPath%
)
)

:GetPackagePath_END
ECHO %DATE% %TIME%[Log TRACE] PackagePath is [%packagepath%] >> %LogPath%
ECHO.>>%LogPath%

REM Prepare LicensePath


ECHO %DATE% %TIME%[Log TRACE] dir /s /b *License*.xml >> %LogPath%
dir /s /b *License*.xml >> %LogPath% 2>&1
(for /f "delims=" %%d in ('dir /s /b *License*.xml') do (
set licensepath=%%d
))>NUL 2>&1
ECHO %DATE% %TIME%[Log TRACE] LicensePath is [%licensepath%] >> %LogPath%
ECHO.>>%LogPath%

REM Prepare DependencyPackagePath


ECHO %DATE% %TIME%[Log TRACE] dir /s /b Microsoft*_x86*.appx >> %LogPath%
dir /s /b Microsoft*_x86*.appx >> %LogPath% 2>&1
(for /f "delims=" %%d in ('dir /s /b Microsoft*_x86*.appx') do (
ECHO !DATE! !TIME![Log TRACE] find /i "%%~nxd" %~d0\OEM\FilterVCLibsList.txt
>>%LogPath% 2>&1
find /i "%%~nxd" %~d0\OEM\FilterVCLibsList.txt >>%LogPath% 2>&1
if !errorlevel! neq 0 (
ECHO !DATE! !TIME![Log TRACE] [%%~nxd] can be added to
dependencypackagepath >>%LogPath%
set
DependencyPackage_X86=!DependencyPackage_X86!/dependencypackagepath:"%%d"
) else ( ECHO !DATE! !TIME![Log TRACE] [%%~nxd] should be filtered from
dependencypackagepath >>%LogPath% )
ECHO !DATE! !TIME![Log TRACE] Now DependencyPackage_X86 is [!
DependencyPackage_X86!] >>%LogPath%
))>NUL 2>&1
ECHO %DATE% %TIME%[Log TRACE] dir /s /b Microsoft*_x64*.appx >> %LogPath%
dir /s /b Microsoft*_x64*.appx >> %LogPath% 2>&1
(for /f "delims=" %%d in ('dir /s /b Microsoft*_x64*.appx') do (
ECHO !DATE! !TIME![Log TRACE] find /i "%%~nxd" %~d0\OEM\FilterVCLibsList.txt
>>%LogPath% 2>&1
find /i "%%~nxd" %~d0\OEM\FilterVCLibsList.txt >>%LogPath% 2>&1
if !errorlevel! neq 0 (
ECHO !DATE! !TIME![Log TRACE] [%%~nxd] can be added to
dependencypackagepath >>%LogPath%
set
DependencyPackage_X64=!DependencyPackage_X64!/dependencypackagepath:"%%d"
) else ( ECHO !DATE! !TIME![Log TRACE] [%%~nxd] should be filtered from
dependencypackagepath >>%LogPath% )
ECHO !DATE! !TIME![Log TRACE] Now DependencyPackage_X64 is [!
DependencyPackage_X64!] >>%LogPath%
))>NUL 2>&1
ECHO %DATE% %TIME%[Log TRACE] Merge _x86.appx and _x64.appx For X64 >> %LogPath%
set DependencyPackage_X64=%DependencyPackage_X86%%DependencyPackage_X64%
ECHO %DATE% %TIME%[Log TRACE] After merge DependencyPackage_X64 is
[%DependencyPackage_X64%] >>%LogPath%
ECHO.>>%LogPath%
exit /b 0

:ErrorMsg
if exist %~d0\OEM\NAPP\D2D.tag (
ECHO %DATE% %TIME%[Log TRACE] %~d0\OEM\NAPP\D2D.tag found, exit /b 0 >>
%LogPath%
exit /b 0
)

ECHO MsgBox "ERROR! Driver UWP Install process failed with ERROR code %DISMErrCode
%",16,"Driver UWP Installation Detection" >ErrorMsg.vbs
CScript /nologo ErrorMsg.vbs
CScript /nologo ErrorMsg.vbs
CScript /nologo ErrorMsg.vbs
exit /b 0

:CheckingVCLib
:GetVCLibs_Start
SET CheckingVCLib_Now=%TargetVCLib%*_%1*.appx
ECHO.
ECHO -----------------------------------------------------------------
ECHO %DATE% %TIME%[Log TRACE] Current working directory is [!CD!]
ECHO %DATE% %TIME%[Log TRACE] dir /b %CheckingVCLib_Now%
dir /b %CheckingVCLib_Now%
if %errorlevel% neq 0 ECHO %DATE% %TIME%[Log TRACE] dir /b %CheckingVCLib_Now% not
exist, exit /b 0 && exit /b 0

for /f "tokens=1,2 delims=_" %%I in ('dir /b %CheckingVCLib_Now%') do (


ECHO !DATE! !TIME![Log TRACE] set VCLibsName=[%%I], VCLibsVer=[%%J]
set VCLibsName=%%I
set VCLibsVer=%%J
goto :GetVCLibs_End
)
:GetVCLibs_End
pushd "%~dp0"
ECHO %DATE% %TIME%[Log TRACE] powershell.exe -noprofile -executionpolicy
unrestricted -command ".\CheckingVCLib.ps1 %VCLibsName% %VCLibsVer% %1; exit
$LASTEXITCODE"
powershell.exe -noprofile -executionpolicy unrestricted -command ".\
CheckingVCLib.ps1 %VCLibsName% %VCLibsVer% %1; exit $LASTEXITCODE"
SET ExitCode=%errorlevel%
ECHO %DATE% %TIME%[Log TRACE] Getting return code is %ExitCode%
popd
if %ExitCode% equ 5 (
ECHO !DATE! !TIME![Log TRACE] Skip below dependency package list from UWP
source
dir /b %CheckingVCLib_Now% >>%~d0\OEM\FilterVCLibsList.txt
type %~d0\OEM\FilterVCLibsList.txt
) else (
ECHO !DATE! !TIME![Log TRACE] OS with older version, no need to filter.
)
ECHO -----------------------------------------------------------------
ECHO.
exit /b 0

You might also like