怎么实现用批处理命令把一个压缩包里的文件夹覆盖到游戏目录

2025-02-24 00:08:56
推荐回答(4个)
回答1:

@echo off
set rr=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
for /f "skip=4 tokens=3 delims= " %%i in ('reg query "%rr%\WinRAR.exe" /v Path') do set p=%%i
"%p%\rar.exe" e 魔兽世界.rar
for %%i in (WOW,Interface,Fonts) do "%p%\rar.exe" x %%i.rar&del %%i.rar

set rr=HKLM\SOFTWARE\Blizzard Entertainment\World of Warcraft
for /f "skip=4 tokens=3 delims= " %%i in ('reg query "%rr%" /v InstallPath') do set p=%%i
for %%i in (WOW,Interface,Fonts) do echo D|xcopy /s /y %%i "%p%/%%i"&rd %%i /s /q

pause

把以上批处理和“魔兽世界.rar”放一起运行,即可:
1、自动解压“魔兽世界.rar”
2、自动解压上一步解压得到的WTF.rar interface.rar FONTS.rar
3、自动将上一步三个压缩包中的文件复制到魔兽世界安装目录下的三个对应文件夹中,如果有文件重复,则自动覆盖掉原文件
4、自动删除这个过程中解压出来的文件,使得运行前后都只有两个文件,即该bat文件和“魔兽世界.rar”

说明:
1、个人不敢担保通过注册表能够正确获取魔兽世界的安装目录,因为我没有安装魔兽世界,该注册表信息来源于网上,不知道对不对。

回答2:

可以打包成自解压模式的,可以指定解压后运行一个批处理来完成你的要求
interface是要放在wow根目录下的interface里吧
fonts应该是安装成系统字体,也就是c:\windows\fonts
wtf要放在哪的

回答3:

@echo off
for /r . %%a in (*.rar) do (
cd "%%~pa"
"%ProgramFiles%\WinRAR\WINRAR.exe" x "%%a" "%%~pa%%~na\"
)

把以上代码做成.bat文件。 它会把当前文件夹下的*.rar文件解压出来。
其中"%ProgramFiles%\WinRAR\WINRAR.exe"为winrar的安装位置

RAR [命令] [选项] RAR文件名 [要压缩/解压的文件名] [要解压到的路径]

其中,常用的命令有:

a 向压缩文件中添加文件.
c 添加压缩文件的注解.
e 将压缩文件中的文件解压到当前文件夹下.
f 刷新压缩文件中的文件.
l 列出压缩文件中的内容.
t 测试压缩文件的完整性.
r 修复损坏的压缩文件.
x 将压缩文件中的文件解压到压缩文件中保存的文件夹下.

常用的选项有:

-m 设置压缩级别,从0到5.
-p 设置或输入压缩文件的密码.
-r 记住进行压缩的文件的所在路径结构.
-u 更新压缩文件中的文件.

回答4:

replace 替换文件
replace <文件源><替换路径>