[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何从TXT文本中提取某个字符?

这个问题不知道怎么办,被堵住了。
这是一个txt文本:
  1. this is a test.
  2. COM6......
  3. The number 2463 tool is on COM6, wait...
复制代码
想提取出来“The number 2463 tool is on COM6”中,COM6中的“6”,将这个“6”显示在命令行窗口中,不知该怎么办?
系统是win10。

77七 发表于 2023-1-25 19:57


万分感谢,终于知道怎么办了。。。
感谢。

TOP

下载gawk(  )
hfxiang 发表于 2023-1-25 20:13

感谢提供gawk下载链接。感谢提供解答。

TOP

本帖最后由 fantasyhpu 于 2023-1-29 21:05 编辑
77七 发表于 2023-1-25 19:57


这几天在使用这段批处理时出现一个问题:
若“文本.txt”中的内容,昨天和今天的不一样,例如昨天的内容是:
  1. this is a test.
  2. COM6......
  3. The number 2463 tool is on COM6, wait...
复制代码
则用您给的方法找到了“The number 2463 tool is on COM6”中,COM后面的“6”。
但是今天“文本.txt”的内容变为:
  1. this is a test.
  2. this is another test.
  3. COM7......
  4. COM8......
  5. The number 2463 tool is on COM6, wait...
  6. this is another test.
复制代码
用原先的批处理时,就找不到COM6中的“6”了。

我尝试将
  1. for /f "tokens=7 delims=,
复制代码
中tokens的值从7改为其它值,比如6、3等,但治标不治本,只要“文本.txt”内容不一样了,就找不到COM6中的“6”了。
无论“文本.txt”中的内容如何更改,但是“The number 2463 tool is on COM”是永远存在的,对这种情况,怎样修改您给出的批处理程序,提取紧挨着“The number 2463 tool is on COM”后面的“6”呢?
感谢。。。

TOP

回复  fantasyhpu

我这边测试正常意为:“打印” 包含 The number 的那一行




意为:以“,”和 ...
77七 发表于 2023-1-29 21:09



感谢。。。
我将测试文件放在了这里:
链接:https://pan.baidu.com/s/1OCWaAbMPQ_2vmn6gd2Q_Ug?pwd=1111
提取码:1111

TOP

本帖最后由 fantasyhpu 于 2023-1-30 15:22 编辑
回复  fantasyhpu

你的文本行结束符有点问题,改为(CR+LF) 这个试试

批处理最好保存为ansi编码
77七 发表于 2023-1-29 22:31


感谢提醒。经过反复对比,发现确实是文本行结束符有问题。正确的行结束符应该是CR+LF,但是本文中有些行结束符只为CR:

无法上传图片与附件,将图片传到这里了:
链接:https://pan.baidu.com/s/18SwGetmnjQ8ZY8hb_Adayg?pwd=1111
提取码:1111

请问对于这类有毛病的文本,有办法将”ATmega328P on COM“定位出来,提取出紧跟着它的那个字符”6“吗?
感谢。。。

TOP

回复  fantasyhpu


   我也是第一次遇到这种状况,你的网盘文件删了,我没法测试,试试这样行不
77七 发表于 2023-1-30 17:15


感谢您的回复。您的批处理代码完全解决了问题,对上面出问题的文本(行结束符不是CR+LF,而是CR)也能很好的找到期望的结果。
再次感谢。。。

TOP

返回列表