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

如何用PowerShell在首空行前的每行添加#前缀

修正后的PowerShell脚本

$Lines = Get-Content -Path C:\Users\mike\Downloads\test1.txt
$OutputPath = "C:\Users\mike\Downloads\test2.txt"
$addHash = $true
$processedLines = @()

foreach ($Line in $Lines) {
    if ($addHash) {
        # 给当前行添加#前缀
        $processedLine = "# $Line"
        $processedLines += $processedLine
        # 碰到空行就关闭前缀添加开关
        if ($Line.Trim() -eq '') {
            $addHash = $false
        }
    } else {
        # 开关关闭后直接保留原行内容
        $processedLines += $Line
    }
}

# 一次性写入处理后的内容,比循环追加更高效
$processedLines | Out-File -Path $OutputPath

逻辑说明

  • 新增$addHash变量作为控制开关,初始设为$true,表示需要给行添加前缀。
  • 遍历每行时:
    • 开关开启状态下,先给行添加# 前缀,同时检查该行是否为空行(用Trim()是为了兼容行内只有空格/制表符的情况),如果是空行就将开关设为$false,后续行不再添加前缀。
    • 开关关闭后,直接保留原行内容,不再做修改。
  • 最后一次性写入所有处理后的行,避免循环追加带来的性能损耗和潜在写入异常。

如果你的空行是完全无任何字符(连空格都没有)的情况,可以把$Line.Trim() -eq ''替换为$Line -eq '',适配实际文件格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:52:11