Windows 备份和还原 DirectX
Download DirectX End-User Runtime from Official Microsoft Download Center
如果你需要备份 DirectX,可以按照以下步骤进行:
-
按下“Windows + R”键打开运行窗口,在窗口中输入“dxdiag”命令并按下回车键打开 DirectX 诊断工具。
-
在 DXDiag 窗口中,点击“运行 64 位 DxDiag”(如果你的系统为 32 位,则跳过此步骤)。
-
在弹出的“DxDiag 64 位”窗口中,选择“显示”标签页,并记录下显卡和驱动程序的信息;
-
选择“声音”标签页,并记录下音频设备的信息;
-
选择“输入”标签页,并记录下输入设备的信息。
-
在备份 DirectX 文件之前,建议你先到 Microsoft 官网下载最新版的 DirectX 运行库。
-
打开 Windows 资源管理器,找到 C:\Windows\System32 目录(如果你的系统为 32 位,则是 C:\Windows\SysWOW64 目录)。
-
将该目录下所有以“d3d”、“dinput”、“dsound”、“dxgi”、“dxva”等开头的 DLL 文件以及“D3DCompiler_47.dll”文件作为备份文件拷贝到另一个安全的地方。
-
如果你是 64 位操作系统,则还需将 C:\Windows\SysWOW64 目录下所有以“d3d”、“dinput”、“dsound”、“dxgi”、“dxva”等开头的 DLL 文件以及“D3DCompiler_47.dll”文件作为备份文件拷贝到另一个安全的地方。
这样,你就完成了 DirectX 的备份。如果恢复 DirectX 备份后发生了问题,你可以把备份的文件覆盖回原来位置即可。
批处理文件来备份 DirectX 文件,具体步骤如下:
- 打开记事本,将以下命令复制到新建的文本文档中:
@echo off
echo 正在备份 DirectX 文件,请稍候...
xcopy "C:\Windows\System32\d3d*.dll" ".\DirectX_backup\System32\" /y /v /f /s
xcopy "C:\Windows\System32\dinput*.dll" ".\DirectX_backup\System32\" /y /v /f /s
xcopy "C:\Windows\System32\dsound*.dll" ".\DirectX_backup\System32\" /y /v /f /s
xcopy "C:\Windows\System32\dxgi*.dll" ".\DirectX_backup\System32\" /y /v /f /s
xcopy "C:\Windows\System32\dxva*.dll" ".\DirectX_backup\System32\" /y /v /f /s
xcopy "C:\Windows\System32\D3DCompiler_47.dll" ".\DirectX_backup\System32\" /y /v /f /s
echo 备份完成!
pause
-
将文本文档保存为“backup.bat”。
-
双击运行该批处理文件,等待备份完成。
备份文件夹中添加时间戳以便于区分备份文件,可以尝试以下修改:
@echo off
setlocal enabledelayedexpansion
rem 获取当前时间,格式为 yyyyMMdd_HHmmss
set "timestamp=%date:/=_%_%time::=.%"
set "timestamp=!timestamp:,=_!"
echo 正在备份 DirectX 文件,请稍候...
mkdir ".\DirectX_backup\%timestamp%"
xcopy "C:\Windows\System32\d3d*.dll" ".\DirectX_backup\%timestamp%\System32\" /y /v /f /s
xcopy "C:\Windows\System32\dinput*.dll" ".\DirectX_backup\%timestamp%\System32\" /y /v /f /s
xcopy "C:\Windows\System32\dsound*.dll" ".\DirectX_backup\%timestamp%\System32\" /y /v /f /s
xcopy "C:\Windows\System32\dxgi*.dll" ".\DirectX_backup\%timestamp%\System32\" /y /v /f /s
xcopy "C:\Windows\System32\dxva*.dll" ".\DirectX_backup\%timestamp%\System32\" /y /v /f /s
xcopy "C:\Windows\System32\D3DCompiler_47.dll" ".\DirectX_backup\%timestamp%\System32\" /y /v /f /s
echo 备份完成!
pause
这个批处理脚本会将备份文件夹命名为当前时间戳,例如“2023-06-10_12.34.56”,并将备份的 DirectX 文件保存在该文件夹中。这样可以方便的找到特定时刻备份的 DirectX 文件。
还原 DirectX 文件的批处理文件示例:
@echo off
setlocal enabledelayedexpansion
echo 正在还原 DirectX 文件,请稍候...
set /p timestamp="请输入备份时间戳(格式为 yyyy-MM-dd_HH.mm.ss):"
if exist ".\DirectX_backup\%timestamp%\System32" (
xcopy ".\DirectX_backup\%timestamp%\System32\d3d*.dll" "C:\Windows\System32\" /y /v /f /s
xcopy ".\DirectX_backup\%timestamp%\System32\dinput*.dll" "C:\Windows\System32\" /y /v /f /s
xcopy ".\DirectX_backup\%timestamp%\System32\dsound*.dll" "C:\Windows\System32\" /y /v /f /s
xcopy ".\DirectX_backup\%timestamp%\System32\dxgi*.dll" "C:\Windows\System32\" /y /v /f /s
xcopy ".\DirectX_backup\%timestamp%\System32\dxva*.dll" "C:\Windows\System32\" /y /v /f /s
xcopy ".\DirectX_backup\%timestamp%\System32\D3DCompiler_47.dll" "C:\Windows\System32\" /y /v /f /s
echo 还原完成!
) else (
echo 备份不存在或时间戳不正确!
)
pause
该脚本会先提示用户输入备份的时间戳(例如“2023-06-10_12.34.56”),然后根据时间戳找到对应的备份文件夹,并将备份的 DirectX 文件还原到系统目录下。如果备份不存在或时间戳不正确,脚本会给出相应的提示信息。
建议在使用还原 DirectX 文件的批处理脚本之前先备份当前的 DirectX 文件,以便于在还原后出现问题时可以再次还原回来。