Windows 备份和还原 DirectX

发布时间 2023-06-10 17:07:51作者: suv789

如果你需要备份 DirectX,可以按照以下步骤进行:

  1. 按下“Windows + R”键打开运行窗口,在窗口中输入“dxdiag”命令并按下回车键打开 DirectX 诊断工具。

  2. 在 DXDiag 窗口中,点击“运行 64 位 DxDiag”(如果你的系统为 32 位,则跳过此步骤)。

  3. 在弹出的“DxDiag 64 位”窗口中,选择“显示”标签页,并记录下显卡和驱动程序的信息;

  4. 选择“声音”标签页,并记录下音频设备的信息;

  5. 选择“输入”标签页,并记录下输入设备的信息。

  6. 在备份 DirectX 文件之前,建议你先到 Microsoft 官网下载最新版的 DirectX 运行库。

  7. 打开 Windows 资源管理器,找到 C:\Windows\System32 目录(如果你的系统为 32 位,则是 C:\Windows\SysWOW64 目录)。

  8. 将该目录下所有以“d3d”、“dinput”、“dsound”、“dxgi”、“dxva”等开头的 DLL 文件以及“D3DCompiler_47.dll”文件作为备份文件拷贝到另一个安全的地方。

  9. 如果你是 64 位操作系统,则还需将 C:\Windows\SysWOW64 目录下所有以“d3d”、“dinput”、“dsound”、“dxgi”、“dxva”等开头的 DLL 文件以及“D3DCompiler_47.dll”文件作为备份文件拷贝到另一个安全的地方。

这样,你就完成了 DirectX 的备份。如果恢复 DirectX 备份后发生了问题,你可以把备份的文件覆盖回原来位置即可。

 

批处理文件来备份 DirectX 文件,具体步骤如下:

  1. 打开记事本,将以下命令复制到新建的文本文档中:
Copy Code
@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
  1. 将文本文档保存为“backup.bat”。

  2. 双击运行该批处理文件,等待备份完成。

备份文件夹中添加时间戳以便于区分备份文件,可以尝试以下修改:

Copy Code
@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 文件的批处理文件示例:

Copy Code
@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 文件,以便于在还原后出现问题时可以再次还原回来。