标题: [文本处理] [己解决]批处理删除包含2020的最后一行 [打印本页]
作者: keshun 时间: 2020-10-23 20:17 标题: [己解决]批处理删除包含2020的最后一行
请教高手求代吗?a.txt最后一行包含2020就删除,如果不包含2020就不删。
作者: qixiaobin0715 时间: 2020-10-23 22:47
有什么用吗?
假设文本最长一行字符数不超过100个,修改后的文本为#a.txt:- @echo off
- setlocal enabledelayedexpansion
- set n=0
- for /f "delims=" %%a in ('type a.txt^|sort /+100') do (
- set "var=%%a"
- set /a n+=1
- if "!n!" == "1" if "!var:2020=!" == "!var!" goto :eof
- if not "!n!" == "1" echo %%a>>1.temp
- )
- sort /+100 1.temp>#a.txt
- del 1.temp
- pause
复制代码
作者: Batcher 时间: 2020-10-23 23:00
回复 1# keshun
推荐试试 sed.exe 命令行工具:
http://bcn.bathome.net/s/tool/index.html?key=sed- sed "$s/.*2020.*//" 1.txt > 2.txt
复制代码
作者: keshun 时间: 2020-10-23 23:01
回复 2# qixiaobin0715
echo %DATE% %time%>>a.txt
我有个批处理定时循环运行软件,运行前先写入时间a.txt,软件检测有异常记录会写入a.txt,如无异常就不写入,循环多次会产生好多没意义的时间记录。
作者: keshun 时间: 2020-10-23 23:07
回复 3# Batcher
感谢高手!!能否a.txt直接删除不生成另一文本?
作者: Batcher 时间: 2020-10-23 23:14
回复 5# keshun - sed -i "$s/.*2020.*//" a.txt
复制代码
作者: Batcher 时间: 2020-10-23 23:17
回复 4# keshun
不太了解你的业务需求,但是我认为这样的日期时间记录是非常有意义的。
当你偶尔遇到特殊情况的时候,至少可以证明当时代码检测没有问题。
否则的话你就说不清楚啦,到底是代码没有执行还是别的什么原因导致没有日志记录。
作者: 沈乐涛 时间: 2021-11-11 11:20
学习了,谢谢大佬的分享
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |