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

如何用PowerShell从每个COBOL文件单独提取注释

为每个COBOL文件单独提取注释的PowerShell方案

修改思路

原代码是将所有文件的注释汇总到单个文件,要实现每个文件单独输出,核心是遍历每个文件时直接生成对应的注释文件,而非先收集所有内容再统一输出。

修改后的代码

# 配置路径:替换成你的COBOL文件目录和注释输出目录
$sourceFolder = 'C:\Users\TextFiles'
$outputFolder = 'C:\Users\Desktop\COBOL_Comments'

# 自动创建输出目录(不存在则新建)
if (-not (Test-Path $outputFolder)) {
    New-Item -ItemType Directory -Path $outputFolder | Out-Null
}

# 递归获取所有COBOL源文件
$targetFiles = Get-ChildItem -Path $sourceFolder -File -Recurse -ErrorAction SilentlyContinue

foreach ($file in $targetFiles) {
    # 生成当前文件对应的注释文件名(和原文件同名+_Comments后缀)
    $commentFile = Join-Path -Path $outputFolder -ChildPath "$($file.BaseName)_Comments.txt"

    # 写入注释来源标识(可选,方便对应原文件)
    "=== 来自文件:$($file.FullName) ===" | Out-File -Path $commentFile -Encoding utf8

    # 读取当前文件内容
    $fileContent = Get-Content $file.FullName

    # 逐行提取COBOL注释(第7列索引为6,判断是否为*)
    foreach ($line in $fileContent) {
        # 先判断行长度避免索引越界,再检查注释标记
        if ($line.Length -ge 7 -and $line[6] -eq '*') {
            $line | Out-File -Path $commentFile -Encoding utf8 -Append
        }
    }
}

关键说明

  • 路径配置:修改$sourceFolder和$outputFolder为你的实际路径
  • 避免索引错误:新增$line.Length -ge 7判断,防止短行导致的数组索引越界报错
  • 文件关联:注释文件名和原文件名绑定(如TEST.cbl对应TEST_Comments.txt),方便溯源
  • 可选调整:如果不需要开头的来源标识,可以删掉写入标识的那一行代码
  • 编码适配:如果原COBOL文件使用特殊编码,可在Get-Content中添加-Encoding参数(如-Encoding OEM)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:07:11