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

批处理:如何移除文本文件多行空行并保留单行空行?

解决方法:移除多行空行并保留单行空行的批处理脚本

你之前使用的for /f命令存在本质问题:它默认会忽略所有空行,导致输出文件中完全丢失空行,无法满足保留单行分隔空行的需求。要实现目标,需要跟踪每行状态,只保留非连续的空行,以下是正确的批处理脚本:

@echo off
setlocal enabledelayedexpansion

set "prev_empty="
set "temp_file=~.txt"

del "%temp_file%" 2>nul

for /f "usebackq delims=" %%a in ("test.txt") do (
    set "current_line=%%a"
    if "!current_line!"=="" (
        if not defined prev_empty (
            echo(>>"%temp_file%"
            set "prev_empty=1"
        )
    ) else (
        echo(!current_line!>>"%temp_file%"
        set "prev_empty="
    )
)

move /y "%temp_file%" "test.txt"
endlocal

脚本逻辑说明

  • 启用enabledelayedexpansion以支持循环内的变量实时判断与赋值
  • prev_empty变量用于标记上一行是否为空行
  • 遍历每行时:
    • 若当前行是空行,且上一行不是空行,才输出该空行,并标记上一行状态为空
    • 若当前行非空,直接输出内容,并清空上一行的空行标记
  • 最终将临时文件覆盖原文件,实现多行空行压缩为单行的效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 08:15:40