标题: [文本处理] [分享]批处理把txt文件最后两行等号后面的内容删除 [打印本页]
作者: Batcher 时间: 2024-11-10 18:14 标题: [分享]批处理把txt文件最后两行等号后面的内容删除
【问题描述】
请教一下,Cmd批处理怎么处理这个txt文件,把最后两行等号后面的删除?
处理前:
处理后:
作者: Batcher 时间: 2024-11-10 18:14
【解决方案】- @echo off
- set "OldFile=1.txt"
- set "NewFile=2.txt"
- cd /d "%~dp0"
- findstr /v /i /b /c:"existedApp=" /c:"appNumQueue=" "%OldFile%" > "%NewFile%"
- >> "%NewFile%" echo,existedApp=
- >> "%NewFile%" echo,appNumQueue=
复制代码
作者: aloha20200628 时间: 2024-11-10 20:02
本帖最后由 aloha20200628 于 2024-11-10 20:04 编辑
回复 1# Batcher
以下批处代码中采用 sed.exe 可从本坛第三方下载(落地即用) http://bcn.bathome.net/s/tool/index.html?key=sed
假设 0.txt 为源文件,1.txt 为结果文件- @echo off &setlocal &for /f %%n in ('find /c /v ""^<0.txt') do set/a "n=%%n-1"
- sed.exe "%n%,$d" 0.txt>"1.txt" &set/a "n-=1"
- (for /f "skip=%n% delims==" %%a in (0.txt) do echo,%%a)>>"1.txt"
- endlocal&pause&exit/b
复制代码
作者: qixiaobin0715 时间: 2024-11-12 12:27
啰嗦一点:- @echo off
- (type 1.txt
- echo,########)>temp
- setlocal enabledelayedexpansion
- (for /f "tokens=1* delims==" %%i in (temp) do (
- if defined a1 echo,!a1!
- set a1=!a2!
- set a2=!a3!
- if "%%i"=="########" (
- echo,!b1!
- echo,!b2!
- )
- set b1=!b2!
- if "%%j"=="" (
- set a3=%%i
- ) else (
- set "a3=%%i=%%j"
- set "b2=%%i="
- )
- ))>2.txt
- del temp
- pause
复制代码
作者: yyz219 时间: 2024-11-13 18:58
非常不错 学习
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |