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

如何用批处理或脚本将文件夹内各CFG文件指定内容替换为自身无扩展名文件名

嘿,这个需求完全可以实现!我给你准备了两种常用的脚本方案——Windows批处理和PowerShell,你可以根据自己的习惯选:

Windows 批处理方案

如果习惯用CMD命令行,直接新建一个replace_kof98.bat文件,把下面的代码复制进去,放到你的cfg文件所在文件夹里双击运行就行:

@echo off
setlocal enabledelayedexpansion

:: 遍历所有.cfg文件
for %%f in (*.cfg) do (
    :: 提取无扩展名的文件名
    set "filename=%%~nf"
    set "line_num=0"
    
    :: 新建临时文件,逐行处理原文件内容
    >"%%~nf_temp.cfg" (
        for /f "delims=" %%l in ('type "%%f"') do (
            set /a line_num+=1
            if !line_num! equ 4 (
                :: 第4行替换kof98为文件名
                set "current_line=%%l"
                set "current_line=!current_line:kof98=!filename!"
                echo !current_line!
            ) else (
                :: 其他行直接输出
                echo %%l
            )
        )
    )
    
    :: 用临时文件覆盖原文件
    move /y "%%~nf_temp.cfg" "%%f" >nul
)

echo 所有文件替换完成!
pause

批处理方案说明:

  • setlocal enabledelayedexpansion:开启延迟变量扩展,确保循环里的变量能实时更新
  • %%~nf:自动提取每个cfg文件的无扩展名名称
  • 先把处理后的内容写入临时文件,再覆盖原文件,避免直接修改时出现文件损坏的问题
PowerShell 方案

如果用PowerShell更顺手,这个方案代码更简洁,兼容性也更好:

新建一个Replace-Kof98.ps1文件,复制下面的代码进去,放到目标文件夹后右键用PowerShell运行:

# 获取当前文件夹下所有.cfg文件
Get-ChildItem -Filter *.cfg | ForEach-Object {
    $file = $_
    $targetName = $file.BaseName  # 提取无扩展名文件名
    
    # 读取文件所有行
    $content = Get-Content -Path $file.FullName
    if ($content.Count -ge 4) {
        # 第4行(数组索引从0开始,所以是[3])替换kof98为目标文件名
        $content[3] = $content[3] -replace 'kof98', $targetName
        # 写回原文件,编码根据你的文件实际情况调整,比如UTF-8
        Set-Content -Path $file.FullName -Value $content -Encoding ASCII
    } else {
        Write-Warning "⚠️ 文件 $($file.Name) 不足4行,跳过处理"
    }
}

Write-Host "✅ 所有符合条件的文件替换完成!" -ForegroundColor Green

PowerShell方案说明:

  • $file.BaseName:直接获取无扩展名的文件名,比批处理更直观
  • 加入了文件行数判断,如果某个cfg文件不足4行,会给出警告提示
  • -replace操作支持正则匹配,这里直接用简单字符串替换就足够

注意事项:

  1. 建议先备份所有cfg文件再运行脚本,避免意外情况导致数据丢失
  2. 如果你的cfg文件是UTF-8编码,PowerShell里的-Encoding ASCII可以改成-Encoding UTF8
  3. 批处理对特殊字符(比如&、|)的处理有限,如果你的cfg文件里有这类字符,优先用PowerShell方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:30:19