批处理 > 提取 txt 文件中同一字符之间的部分行

Posted

技术标签:

【中文标题】批处理 > 提取 txt 文件中同一字符之间的部分行【英文标题】:Batch > Extract part of a line in a txt file between same character 【发布时间】:2021-03-29 00:26:05 【问题描述】:

我有一个只有一行的文本文件。我需要提取由字符分隔的行的每个部分。示例:

1212123123!asdf asdf asdf asdf u!herd!TOTO!

我需要能够在没有! 的情况下回显! 之间的每个部分并显示它们

A:1212123123
B:asdf asdf asdf asdf u
C:herd
D:TOTO

我没有在知识库中找到解决方案

我试过了:

Set "String=1212123123!asdf asdf asdf asdf u!herd!TOTO!"

for /f "delims=2" %%f in (%String%) do set "%%f" (
    Set "Up2Sub=%String:*!=%"
    Set "SubStr=%Up2Sub:!="&:"%"
    echo %SubStr%
    )

但我得到了结果:

The system cannot find the file 1212123123!asdf.
asdf asdf asdf asdf u

感谢您的帮助

【问题讨论】:

【参考方案1】:

由于您似乎没有在自己编码方面表现出任何努力,所以这是一个完整的两行批处理文件答案,显示没有任何努力作为回报。如果您更改了问题标准,或者无法自行进行后续调整,则不会由我自己修改。

@Set "Line="&Set /P "Line="<"SingleLine.txt"
@If Defined Line Echo %Line:!=&Echo=%&Pause

【讨论】:

嗨 Compo,对此我深表歉意。谢谢。 @brs65,请看What should I do when someone answers my question?,看看你接下来应该考虑做什么。

以上是关于批处理 > 提取 txt 文件中同一字符之间的部分行的主要内容,如果未能解决你的问题,请参考以下文章

如何用批处理命令把1个文件夹里多个csv文件的某一列合并成一个txt

批处理如何提取文本文件中每行字符串,每行单独存放不同文本中?

正则表达式在matlab中处理txt文档

活用变量字符串${var%%.*}

Bat批处理怎么从txt中随机提取一个字符并设为变量?

如何在批处理文件的for循环中提取子字符串[关闭]