You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Windows命令提示符FOR/DO命令批量替换指定目录DDS文件

批量替换游戏模组地图瓦片DDS文件的自动化方案

需求说明

需要批量处理28439个命名格式为MENU_MapTile_*-tpf-dcx的子文件夹,完成以下操作:

  • 从maptile_file目录复制map_tile_z.dds到每个目标子文件夹
  • 将复制后的文件重命名为子文件夹名称去掉-tpf-dcx后缀后加.dds
  • 覆盖目标文件夹内原有同名DDS文件
    后续需重复执行该操作,优先采用Windows命令提示符的FOR/DO命令实现,也接受其他可行方案。

文件夹与文件结构

  • 71_maptile.tpfbdt
  • maptile_file(存放用于替换的源文件)
    • map_tile_z.dds  // 待复制的源文件
    
  • 71_maptile-tpfbdt(反编译生成的主文件夹)
    • MENU_MapTile_M00_L0_00_00_00000000.tpf.dcx
    • MENU_MapTile_M00_L0_00_00_00000000-tpf-dcx  // 目标子文件夹1
          • MENU_MapTile_M00_L0_00_00_00000000.dds  // 待替换的目标文件
    • MENU_MapTile_M00_L0_00_00_00004000.tpf.dcx
    • MENU_MapTile_M00_L0_00_00_00004000-tpf-dcx  // 目标子文件夹2
          • MENU_MapTile_M00_L0_00_00_0000000.dds  // 待替换的目标文件
    

CMD FOR/DO命令实现

打开命令提示符,切换到包含71_maptile-tpfbdt的根目录(或直接使用绝对路径),执行以下命令:

@echo off
setlocal enabledelayedexpansion

:: 递归遍历目标文件夹
for /r "71_maptile-tpfbdt" %%d in (MENU_MapTile_*-tpf-dcx) do (
    if exist "%%d" (
        :: 提取文件夹名称并移除-tpf-dcx后缀
        set "folderName=%%~nd"
        set "newFileName=!folderName:-tpf-dcx=!.dds"
        :: 强制复制并重命名文件
        copy /y "maptile_file\map_tile_z.dds" "%%d\!newFileName!"
    )
)

echo 批量替换完成!
pause

命令细节说明

  • for /r "71_maptile-tpfbdt" %%d in (MENU_MapTile_*-tpf-dcx):递归扫描71_maptile-tpfbdt下所有符合命名规则的文件夹
  • setlocal enabledelayedexpansion:启用延迟变量扩展,确保循环内变量修改实时生效
  • %%~nd:获取文件夹的纯名称(不含路径)
  • !folderName:-tpf-dcx=!:替换文件夹名称中的-tpf-dcx为空字符串,生成目标文件名的前缀
  • copy /y:强制覆盖目标文件,无需手动确认

替代方案:PowerShell脚本

若处理大量文件时CMD效率不足,可使用PowerShell脚本,执行速度更快:

# 切换到操作根目录,请替换为实际路径
Set-Location "你的根目录路径"

# 递归查找所有目标文件夹
$targetFolders = Get-ChildItem -Recurse -Directory -Filter "MENU_MapTile_*-tpf-dcx" -Path "71_maptile-tpfbdt"

$sourceFile = ".\maptile_file\map_tile_z.dds"

foreach ($folder in $targetFolders) {
    # 生成目标文件名
    $newFileName = $folder.Name.Replace("-tpf-dcx", "") + ".dds"
    $targetPath = Join-Path -Path $folder.FullName -ChildPath $newFileName
    # 强制复制覆盖
    Copy-Item -Path $sourceFile -Destination $targetPath -Force
}

Write-Host "批量替换完成!"

内容的提问来源于stack exchange,提问作者Emma from Mike's party

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:13:14