如果你在运行 .bat
文件时,命令行窗口(cmd)出现乱码 ,通常是由于编码不匹配 导致的。Windows 的命令提示符默认使用 GBK 编码(中文系统),而你保存的批处理文件可能是 UTF-8 编码,导致中文显示乱码。
✅ 解决方法一:保存为 ANSI 编码(推荐)
- 用记事本打开你的
.bat
文件。 - 点击「文件」→「另存为」。
- 在保存对话框中:
- 将「编码」从
UTF-8
改为 ANSI。 - 保存即可。
- 将「编码」从

copy /y
:/y
表示强制覆盖,不提示确认- 如果目标位置已有同名文件,会直接被替换
- 脚本假设源文件
E:\blender\pakchunk99-XXX-P.pak
已存在 - 目标路径是 Steam 上《师父》(Sifu) 游戏常见的 MOD 加载路径
Paks\~mods
不要加这个chcp 65001 > nul
bash
@echo off
setlocal
echo ================================
echo 开始执行 MOD 构建流程
echo ================================
echo.
:: ================ 第一步:删除 Characters 中的 _Shared 和 Skeleton ================
set "char_dir=E:\blender\ue4\new\Saved\Cooked\WindowsNoEditor\new\Content\Characters"
if exist "%char_dir%\_Shared" (
rmdir /s /q "%char_dir%\_Shared"
echo ?? 已删除 _Shared 文件夹
)
if exist "%char_dir%\Skeleton" (
rmdir /s /q "%char_dir%\Skeleton"
echo ?? 已删除 Skeleton 文件夹
)
echo.
:: ================ 第二步:复制 Characters 到 pakchunk99-XXX-P\Sifu\Content\Characters ================
set "source_dir=%char_dir%"
set "target_char_dir=E:\blender\pakchunk99-XXX-P\Sifu\Content\Characters"
if not exist "%source_dir%" (
echo ?? 错误:源目录不存在!
echo %source_dir%
pause
exit /b 1
)
if exist "%target_char_dir%" (
rmdir /s /q "%target_char_dir%"
echo ?? 已删除旧的目标 Characters 文件夹
)
echo 正在复制 Characters 到 Sifu 项目...
xcopy "%source_dir%" "%target_char_dir%" /e /i /h /y > nul
if exist "%target_char_dir%" (
echo ?? Characters 复制成功
) else (
echo ?? 复制失败!目标路径未生成。
pause
exit /b 1
)
echo.
:: ================ 第三步:调用 UnrealPak 打包生成 .pak 文件 ================
set "unreal_pak_script=E:\blender\Sifu-MOD-TOOL\UnrealPak\UnrealPak-With-Compression.bat"
set "pak_folder=E:\blender\pakchunk99-XXX-P"
if not exist "%unreal_pak_script%" (
echo ?? 错误:UnrealPak 打包脚本不存在!
echo %unreal_pak_script%
pause
exit /b 1
)
echo 正在调用 UnrealPak 打包...
call "%unreal_pak_script%" "%pak_folder%"
:: 检查是否生成了 .pak 文件
set "pak_file=%pak_folder%.pak"
if exist "%pak_file%" (
echo ?? .pak 文件已生成:
echo %pak_file%
) else (
echo ?? 打包失败:未生成 .pak 文件!
pause
exit /b 1
)
echo.
:: ================ 第四步:将 .pak 文件复制到游戏 MOD 目录 ================
set "target_mod_dir=F:\sifu\Sifu\Sifu\Content\Paks\~mods"
set "target_pak=%target_mod_dir%\pakchunk99-XXX-P.pak"
:: 确保 ~mods 目录存在
if not exist "%target_mod_dir%" (
echo ?? 错误:MOD 目录不存在!请确认游戏路径正确。
echo %target_mod_dir%
pause
exit /b 1
)
copy /y "%pak_file%" "%target_pak%" > nul
echo ?? 已替换 MOD 文件到:
echo %target_pak%
echo.
:: ================ 第五步:启动游戏 ================
set "game_exe=F:\sifu\Sifu\Sifu.exe"
if exist "%game_exe%" (
echo 正在启动游戏...
echo %game_exe%
start "" "%game_exe%"
echo ?? 游戏已启动
) else (
echo ?? 错误:游戏主程序不存在!
echo %game_exe%
echo 请检查路径是否正确。
pause
exit /b 1
)
echo.
echo ================================
echo ?? 所有操作已完成!游戏已启动。
echo ================================
echo.