如何使用Batch脚本仅删除文本文件最后一行且保留行内所有空格
Batch脚本删除文本文件最后一行(保留所有空格和格式)
最终可用脚本
@Echo Off SetLocal DisableDelayedExpansion Set "SrcFile=file.txt" If Not Exist "%SrcFile%" Exit /B Copy /Y "%SrcFile%" "%SrcFile%.bak">Nul 2>&1||Exit /B ( Set "Line=" For /F "UseBackQ Delims= EOL=" %%A In ("%SrcFile%.bak") Do ( SetLocal EnableDelayedExpansion If Defined Line Echo(!Line! EndLocal Set "Line=%%A" ) )>"%SrcFile%" EndLocal Exit /B
关键修改说明
- 给
For /F添加EOL=参数,禁用默认的行首分号过滤规则,避免以分号开头的行被丢弃 - 将
Echo !Line!改为Echo(!Line!,解决普通ECHO语句会自动截断行首尾空格、空行输出异常的问题 - 保留原有的延迟膨胀开关逻辑,避免行内容中的感叹号被误解析丢失
效果验证
- 仅删除原文件最后一行,其余所有内容包括行内空格、行首空格、行尾空格、空行都会完整保留
- 自动生成原文件备份,操作失败时不会损坏原始数据
内容的提问来源于stack exchange,提问作者SKIKDA
相关产品推荐
相关产品推荐

