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

如何批量为C:\myfolder下所有*.uci文件添加指定配置行?

批量修改Chessbase UCI引擎配置文件的线程数

我在C:\myfolder目录下有超过100个*.uci文件,这类文件是遵循UCI协议的象棋引擎配置文件,Chessbase软件中每个象棋引擎都会生成对应enginename.uci文件。我希望将引擎使用的CPU核心数从1改为16,需在文件中第8、9行添加如下配置行:

[OPTIONS] 
Threads=16

目前我使用的脚本仅能修改单个文件(如下所示),请问如何修改脚本以批量处理该目录下所有*.uci文件?
原脚本:

@echo off
powershell "$f=(Get-Content somename.txt);$f[8]='heretext1';$f | set-content somename.txt"
powershell "$f=(Get-Content somename.txt);$f[9]='heretext2';$f | set-content somename.txt"

解决方案

你可以使用以下批量处理脚本,它会遍历目标目录下所有.uci文件,完成指定行的修改:

@echo off
set "targetDir=C:\myfolder"
set "line8=[OPTIONS]"
set "line9=Threads=16"

powershell -Command "Get-ChildItem -Path '%targetDir%' -Filter '*.uci' | ForEach-Object { $content = Get-Content $_.FullName; if ($content.Count -ge 9) { $content[7] = '%line8%'; $content[8] = '%line9%' } else { $content += '%line8%'; $content += '%line9%' }; $content | Set-Content $_.FullName -Encoding UTF8 }"

echo 批量修改完成!
pause

关键说明

  • set "targetDir=C:\myfolder":指定待处理文件所在目录,可根据实际路径调整
  • PowerShell数组索引从0开始,因此原需求的第8行对应$content[7],第9行对应$content[8]
  • 脚本会自动判断文件行数:
    • 若文件行数≥9,直接替换对应行内容
    • 若文件行数不足9,将配置行追加到文件末尾,避免索引越界错误
  • -Encoding UTF8:保证文件编码兼容Chessbase读取,防止乱码

内容的提问来源于stack exchange,提问作者Antivoyager

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:40:29