如何用单个文件批量替换指定名称的.txd/.dff文件并保留原文件名?
批量替换指定TXD/DFF文件(保留原文件名)
针对你的需求,下面提供两种Windows系统下直接可用的方案,无需编程基础,按步骤操作即可:
方案一:CMD批处理脚本
准备工作
- 把用来替换的模板文件放在目标文件夹里,命名为
source.txd和source.dff(如果你的模板文件名不同,后面要对应修改脚本里的名称) - 新建一个文本文件,将需要替换的文件名(不带后缀)逐行写入,比如:
保存为img1 img30 greenimg3replace_list.txt,和模板文件、待替换文件放在同一个文件夹
创建脚本
- 新建一个空白文本文件,复制以下代码粘贴进去:
@echo off set "source_txd=source.txd" set "source_dff=source.dff" set "list=replace_list.txt" if not exist "%source_txd%" (echo 找不到源TXD文件!& pause & exit) if not exist "%source_dff%" (echo 找不到源DFF文件!& pause & exit) if not exist "%list%" (echo 找不到文件名列表文件!& pause & exit) for /f "delims=" %%i in (%list%) do ( if exist "%%i.txd" ( copy /y "%source_txd%" "%%i.txd" echo 已替换 %%i.txd ) if exist "%%i.dff" ( copy /y "%source_dff%" "%%i.dff" echo 已替换 %%i.dff ) ) echo 替换完成! pause - 把文本文件的后缀改成
.bat(比如命名为replace_files.bat)
使用方法
双击运行这个.bat文件,脚本会自动读取列表里的文件名,将对应的.txd和.dff文件替换为模板文件,替换时会直接覆盖原文件,务必提前备份原文件!
方案二:PowerShell脚本
如果批处理脚本运行有问题,可以尝试这个:
准备工作
和方案一完全相同:准备模板文件source.txd、source.dff,以及文件名列表replace_list.txt
创建脚本
- 新建空白文本文件,复制以下代码:
$sourceTxd = "source.txd" $sourceDff = "source.dff" $listPath = "replace_list.txt" if (-not (Test-Path $sourceTxd)) { Write-Host "找不到源TXD文件!"; pause; exit } if (-not (Test-Path $sourceDff)) { Write-Host "找不到源DFF文件!"; pause; exit } if (-not (Test-Path $listPath)) { Write-Host "找不到文件名列表文件!"; pause; exit } $fileNames = Get-Content $listPath foreach ($name in $fileNames) { $txdPath = "$name.txd" if (Test-Path $txdPath) { Copy-Item -Path $sourceTxd -Destination $txdPath -Force Write-Host "已替换 $txdPath" } $dffPath = "$name.dff" if (Test-Path $dffPath) { Copy-Item -Path $sourceDff -Destination $dffPath -Force Write-Host "已替换 $dffPath" } } Write-Host "替换完成!" pause - 保存为
.ps1后缀(比如replace_files.ps1)
使用方法
右键点击这个.ps1文件,选择「用PowerShell运行」即可执行替换操作
注意事项
- 替换前必须备份原文件,防止误操作导致文件丢失
- 如果你的模板文件名不是
source.txd和source.dff,要修改脚本里对应的变量内容(比如把source.txd改成你实际的模板文件名) - 列表文件里的文件名不要带后缀,每行一个,不要有多余空格或空行
内容的提问来源于stack exchange,提问作者Novice
相关产品推荐
相关产品推荐

