|
|
本帖最后由 chiannet 于 2026-8-17 18:46 编辑
搞了个从exe格式AMD芯片组驱动包提取纯驱动的脚本。各位看官再精炼精炼
20260817 的优化版本:
- @Echo Off&Setlocal Enabledelayedexpansion
- (Net session >Nul 2>&1)||(Powershell -Command "Start-Process '%~s0' -Verb RunAs"&&exit /b)
- Set z7=
- Set st=
- For /f "Skip=1 Tokens=2,*" %%B in ('Reg Query "HKLM\SOFTWARE\7-Zip" /v "Path" 2^>Nul') Do (If Exist "%%C7z.exe" (Set "z7=%%C7z.exe" & Goto :Begin))
- Set "st=本机未安装 7-zip ?"
- Goto :End
- :Begin
- CD /d "%~DP0"
- Set /a TRy=0
- Set "FN="
- (
- RD "%USERPROFILE%\AppData\Roaming\AMD\Chipset_Software" /s /Q
- Del AMD_Chipset_Drivers.exe /f /q
- For /f "Delims=" %%A in ('Dir "AMD_Chipset_Software_*.exe" /b') Do (
- Title 从%%A提取AMD芯片组纯驱动。
- Set "FN=%%A"
- "%z7%" e "%%A" -y -o".\" "*AMD_Chipset_Drivers.exe"
- )
- ) >Nul 2>Nul
- If Not Defined FN (Set "st=当前目录缺失AMD芯片组驱动 exe 格式原包,请到 AMD 官网下载!" & Goto :End ) Else (
- If Not Exist AMD_Chipset_Drivers.exe (Set "st=7-Zip 未抽出内层 exe 文件!" & Goto :End)
- )
- :B2
- Cls
- Set "SRC=AMD_Chipset_Drivers"
- Start "" %SRC%.exe /a /q
- :Loop
- Timeout 2 >Nul
- Set "AMSI="
- (
- For /f "Delims=" %%d in ('Dir "%USERPROFILE%\AppData\Roaming\AMD\Chipset_Software\%SRC%.msi" /S /B 2^nul') Do Set "AMSI=%%d"
- If Not Defined AMSI For /f "Delims=" %%d in ('Dir "C:\AMD\Chipset_Software\%SRC%.msi" /S /B 2^nul') Do Set "AMSI=%%d"
- If !Try! GTR 20 Set "ST=抱歉,无法获取“%SRC%.msi”! " & Goto :End
- If Not Defined AMSI (Tasklist | Find /i "%SRC%.exe" && (Set /a Try+=1 & Goto :Loop) || Goto :B2)
- Powershell -NoProfile -Command "[void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.SendKeys]::SendWait(' ')"
- Tasklist | Find /i "%SRC%.exe" && (
- Taskkill /f /im "%SRC%.exe"
- For /f "Delims=" %%d in ('Dir "%temp%\%SRC%.msi" /S /B 2^nul') Do RD "%%~Pd" /S /Q
- )
- Del %SRC%.exe /F /Q
- RD %SRC% /S /Q
- Msiexec /a "!AMSI!" /qn TARGETDIR="%~DP0%SRC%"
- If ErrorLevel 0 (Title 从 %FN% 提取AMD芯片组纯驱动成功。) Else (Set "st=从 %FN% 提取AMD芯片组纯驱动失败。" & Goto :End)
- RD "%SRC%\program files" /S /Q
- For %%u in (rtf txt msi) Do Del "%SRC%\*.%%u" /S /F /Q
- MD "%SRC%\WTx64"
- MD "%SRC%\W11x64"
- ) >Nul 2>Nul
- If Exist "%SRC%\Chipset_Software" Set "SRC=%SRC%\Chipset_Software"
- Echo.& Echo.& Echo. 正在分拣Win10/Win11 驱动文件......
- (
- Del "%SRC%\*.xml" /S /F /Q
- For /f "Delims=" %%x in ('Dir "%SRC%" /B /A:D') Do (
- Set /a Has10=0,Has11=0
- If Exist "%SRC%\%%x\WTx64" Set /a Has10=1
- If Exist "%SRC%\%%x\W11x64" Set /a Has11=1
- Set /a HasB=!Has10!+!Has11!
- IF !HasB! EQU 2 (Call :D1D 0000 "%%x" "%SRC%") Else (IF !Has11! EQU 1 (Call :D1D W11x64 "%%x" "%SRC%") Else (IF !Has10! EQU 1 Call :D1D WTx64 "%%x" "%SRC%"))
- If /i "%SRC%"=="AMD_Chipset_Drivers" RD /S /Q "%SRC%\%%x"
- )
- RD /S /Q "AMD_Chipset_Drivers\Chipset_Software"
- ) >Nul 2>Nul
- Cls
- Echo.&Echo. 成功提取AMD芯片组纯驱动到 "%~DP0AMD_Chipset_Drivers"。
- Echo.
- :End
- If Defined ST (Echo. & Echo. & Echo. %ST%)
- Timeout 5 >Nul 2>Nul
- Exit
- :D1D
- For %%K in (WTx64 W11x64) Do (
- If "%~1"=="0000" (Set "P=%%K") Else (Set "P=%~1")
- Set /a i=0
- For /f "Delims=" %%U in ('Dir "%~3\%~2\!P!\*.inf" /S /B 2^>Nul') Do (Set /a i+=1)
- If !i! GTR 0 (
- MD "AMD_Chipset_Drivers\%%K\%~2\!P!"
- Xcopy "%~3\%~2\!P!" "AMD_Chipset_Drivers\%%K\%~2\!P!" /E /Q /h /R /y
- )
- )
- Goto :Eof
复制代码

|
评分
-
查看全部评分
|