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

PowerShell脚本修改求助:实现不同文件夹下对应文件名文件的合并输出

PowerShell脚本修改求助:实现不同文件夹下对应文件名文件的合并输出

嘿,我来帮你调整这个PowerShell脚本,完美匹配你的需求!你想要的是header文件夹里的对应txt文件和input文件夹里的dat文件一一合并,输出到指定文件夹对吧?

修改后的脚本及说明

先直接给你改好的脚本,每一步都加了注释方便理解:

# 定义各文件夹路径
$headerFolderLocation = "c:\temp\header\"
$addonFolderLocation = "c:\temp\input\"
$combinedFolderLocation = "c:\temp\output\"

# 获取input文件夹下所有.dat格式的文件
$datFiles = Get-ChildItem $addonFolderLocation -Filter *.dat

# 遍历每个.dat文件,找到对应header文件并合并
foreach ($datFile in $datFiles) {
    # 提取.dat文件的文件名(不带扩展名,比如01.dat -> 01)
    $fileNameWithoutExt = $datFile.BaseName
    # 拼接对应header文件的完整路径(比如header01.txt)
    $headerFilePath = Join-Path $headerFolderLocation "header$fileNameWithoutExt.txt"
    
    # 先检查header文件是否存在,避免找不到文件时出错
    if (Test-Path $headerFilePath) {
        # 拼接输出文件的完整路径(保持原.dat文件名)
        $outputFilePath = Join-Path $combinedFolderLocation $datFile.Name
        # 使用copy /b命令二进制合并两个文件(确保文件内容不被破坏)
        cmd /c copy /b "$headerFilePath" + "$($datFile.FullName)" "$outputFilePath"
        Write-Host "✅ 合并完成:$headerFilePath + $($datFile.Name) -> $outputFilePath"
    } else {
        Write-Warning "⚠️ 未找到对应header文件:$headerFilePath,已跳过$($datFile.Name)"
    }
}

关键修改点说明

  • 新增header文件夹路径:单独定义了header文件所在的文件夹,让脚本结构更清晰
  • 精准筛选文件:只处理input文件夹里的.dat文件,避免误操作其他类型文件
  • 对应文件名匹配:通过BaseName提取.dat文件的核心名称,自动拼接出对应的headerXX.txt路径
  • 容错检查:增加了Test-Path判断header文件是否存在,防止脚本因找不到文件而中断,同时给出友好提示
  • 规范路径拼接:用Join-Path命令拼接路径,避免手动拼接时出现空格或路径格式错误

灵活调整提示

如果你的header文件命名规则不是headerXX.txt,而是直接和dat文件同名(比如01.txt对应01.dat),只需要修改构造header路径的那一行:

$headerFilePath = Join-Path $headerFolderLocation "$fileNameWithoutExt.txt"

这样就能完美适配你的命名规则啦!

备注:内容来源于stack exchange,提问作者Gavin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 12:23:14