- A+
所属分类:笔电开发
```
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
set OS_PLATFORM=x86
) else (
set OS_PLATFORM=x64
)::Run script as Admin
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if %ERRORLEVEL% EQU 0 (
if exist "%temp%\getadmin.vbs" del /q "%temp%\getadmin.vbs"
) else (
goto :Fun_UAC_Prompt
if exist "%temp%\getadmin.vbs" del /q "%temp%\getadmin.vbs"
):START
@echo.
@echo Start install drivers...
cd /d %~dp0%OS_PLATFORM%
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
set OS_PLATFORM=x86
) else (
set OS_PLATFORM=x64
)::Run script as Admin
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if %ERRORLEVEL% EQU 0 (
if exist "%temp%\getadmin.vbs" del /q "%temp%\getadmin.vbs"
) else (
goto :Fun_UAC_Prompt
if exist "%temp%\getadmin.vbs" del /q "%temp%\getadmin.vbs"
):START
@echo.
@echo Start install drivers...
cd /d %~dp0%OS_PLATFORM%
setlocal enabledelayedexpansion
for /f "delims=" %%b in ('dir /s /b ".\*.inf"') do (
set INF_NAME=%%~nb
set INF_PATH=%%~dpb
echo cd /d !INF_PATH!
cd /d !INF_PATH!
echo pnputil -i -a !INF_NAME!.inf
pnputil -i -a !INF_NAME!.inf
timeout /t 3
)
xcopy /y %~dp0%OS_PLATFORM%\43430r0nvram.txt %WINDIR%\System32\Drivers\
goto :END
:ERROR
color 4f
@echo.
@echo ERROR
@echo.
pause>nul
goto :ERROR
:Fun_UAC_Prompt
if NOT "%~1"=="" set file= ""%~1""
(echo Set UAC = CreateObject("Shell.Application"^)
@echo UAC.ShellExecute "cmd.exe", "/c %~s0%file%", "", "runas", 1)> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /b 0
:END
@echo.
@echo Successfully installed drivers
@echo.
timeout -t 2
exit
二、getadmin.vbs自动生成,目的是让脚本以管理员模式运行
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "cmd.exe", "/c E:\8300_D~1\AP6212\INSTAL~1.CMD", "", "runas", 1
UAC.ShellExecute "cmd.exe", "/c E:\8300_D~1\AP6212\INSTAL~1.CMD", "", "runas", 1