标题: [文本处理] 请教批处理如何删除文本里的特定字符串/内容? [打印本页]
作者: dyz1997 时间: 2017-3-14 12:01 标题: 请教批处理如何删除文本里的特定字符串/内容?
本帖最后由 pcl_test 于 2017-3-16 09:16 编辑
列:
[02:16.82]批[02:17.69]处[02:18.30]里[02:18.86]之[02:19.32]家[02:19.68]
[01:20.94][03:28.35][04:02.04]刚开始学习
想得到下面的结果:
[02:16.82]批处理之家[02:19.68]
[01:20.94][03:28.35][04:02.04]刚开始学习
刚开始学习不会用变量,请大神给做个示列。
1.批字到家字之间的[]数量不定,但不会超过20个
2.刚字前面的[]数量不定,不会超过5个
3.指定删除我会用,就是想学学变量如何使用。
先谢谢各位老师了
作者: 老刘1号 时间: 2017-3-14 12:28
语焉不详。
作者: dyz1997 时间: 2017-3-14 12:40
本帖最后由 dyz1997 于 2017-3-14 22:18 编辑
我的意思就是在文本里
把
[02:16.82]批[02:17.69]处[02:18.30]里[02:18.86]之[02:19.32]家[02:19.68]
[01:20.94][03:28.35][04:02.04]刚开始学习
的内容通过批处理得到以下的内容
[02:16.82]批处理之家[02:19.68]
[01:20.94][03:28.35][04:02.04]刚开始学习
刚开始学,不知道更好的表述方法,见谅
作者: taofan712 时间: 2017-3-14 23:20
确实有点不知所云,所以就题解题,假设你有一个文本,内有两行内容。
没看出来两行内容有什么规律,所以两行分开处理。- @echo off
- for /f "tokens=1-26 delims=[]" %%a in (a.txt) do (
- if defined second (
- echo;[%%a][%%b][%%c]%%d
- ) else (
- echo;[%%a]%%b%%d%%f%%h%%j[%%k]
- set second=2
- )
- )
- pause&exit /b
复制代码
作者: GNU 时间: 2017-3-14 23:28
回复 4# taofan712
楼主说的挺清楚了,中括号的数量是不确定的,你这样写死无法解决楼主的问题。
作者: taofan712 时间: 2017-3-14 23:37
回复 5# GNU
的确中括号不确定,所以我就题解题,万一楼主看到之后突然灵感来了呢 ^_^
作者: GNU 时间: 2017-3-14 23:41
回复 6# taofan712
可能性不大。楼主说了:指定删除我会用。猜测他自己写的代码跟你一个思路。
作者: taofan712 时间: 2017-3-14 23:45
回复 7# GNU
那可能得这样了
第一行:delims=[],取第1列,再用纯for取最后1列,剩下中间的每一列判断是否有数字,没有的就提取出来。 是该这样想吗
作者: dyz1997 时间: 2017-3-15 14:07
回复 4# taofan712
非常感谢 您费心了 谢谢
作者: dyz1997 时间: 2017-3-15 14:09
回复 taofan712
可能性不大。楼主说了:指定删除我会用。猜测他自己写的代码跟你一个思路。
GNU 发表于 2017-3-14 23:41
大神 厉害了 被你说中了 感谢回贴
作者: dyz1997 时间: 2017-3-15 14:14
本帖最后由 dyz1997 于 2017-3-15 14:17 编辑
回复 GNU
那可能得这样了
第一行:delims=[],取第1列,再用纯for取最后1列,剩下中间的每一列 ...
taofan712 发表于 2017-3-14 23:45
谢谢提示 第一行 取第一列和最后一列 中间的用数子判断是个好方法 但这方法到第2行就不行了,如果是多行就无法处理了 谢谢提供思路
作者: pcl_test 时间: 2017-3-16 09:03
- //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
- WSH.echo(WSH.StdIn.ReadAll().replace(/([^\]\r\n]+)\[[\d\.:]+\](?!\s*$)/mg, '$1'))
复制代码
作者: dyz1997 时间: 2017-3-22 16:57
回复 12# pcl_test
谢谢版主 我在学习学习 消化消化
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |