找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 10551|回复: 4

[文本处理] [分享]批处理把txt文件最后两行等号后面的内容删除

[复制链接]
发表于 2024-11-10 18:14:10 | 显示全部楼层 |阅读模式
【问题描述】

请教一下,Cmd批处理怎么处理这个txt文件,把最后两行等号后面的删除?

处理前:


处理后:
 楼主| 发表于 2024-11-10 18:14:54 | 显示全部楼层
【解决方案】
  1. @echo off
  2. set "OldFile=1.txt"
  3. set "NewFile=2.txt"
  4. cd /d "%~dp0"
  5. findstr /v /i /b /c:"existedApp=" /c:"appNumQueue=" "%OldFile%" > "%NewFile%"
  6. >> "%NewFile%" echo,existedApp=
  7. >> "%NewFile%" echo,appNumQueue=
复制代码
发表于 2024-11-10 20:02:35 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-11-10 20:04 编辑

回复 1# Batcher

以下批处代码中采用 sed.exe 可从本坛第三方下载(落地即用) http://bcn.bathome.net/s/tool/index.html?key=sed
假设 0.txt 为源文件,1.txt 为结果文件

  1. @echo off &setlocal &for /f %%n in ('find /c /v ""^<0.txt') do set/a "n=%%n-1"
  2. sed.exe "%n%,$d" 0.txt>"1.txt" &set/a "n-=1"
  3. (for /f "skip=%n% delims==" %%a in (0.txt) do echo,%%a)>>"1.txt"
  4. endlocal&pause&exit/b
复制代码
发表于 2024-11-12 12:27:52 | 显示全部楼层
啰嗦一点:
  1. @echo off
  2. (type 1.txt
  3. echo,########)>temp
  4. setlocal enabledelayedexpansion
  5. (for /f "tokens=1* delims==" %%i in (temp) do (
  6.     if defined a1 echo,!a1!
  7.     set a1=!a2!
  8.     set a2=!a3!
  9.     if "%%i"=="########" (
  10.         echo,!b1!
  11.         echo,!b2!
  12.     )
  13.     set b1=!b2!
  14.     if "%%j"=="" (
  15.         set a3=%%i
  16.     ) else (
  17.         set "a3=%%i=%%j"
  18.         set "b2=%%i="
  19.     )
  20. ))>2.txt
  21. del temp
  22. pause
复制代码
发表于 2024-11-13 18:58:07 | 显示全部楼层
非常不错  学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 14:23 , Processed in 0.017937 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表