【问题标题】:Parsing txt file using batch file使用批处理文件解析txt文件
【发布时间】:2015-08-13 13:41:37
【问题描述】:

我想使用批处理脚本解析一个 .txt 文件。

这是我的txt文件的样子(这只是一个例子,它基本上比那个大很多但是结构是一样的):

<job><name>jj-Aggregator-Detached-Tests</name></job><job><name>j-Aggregator-Nightly-Test</name></job><job><name>j-Aggregator-Nightly-Test-POC</name></job><job><name>j-Aggregator-Nightly-Test-POC-RunTests</name></job><job><name>j-Aggregator-Nightly-Test-TestRepo</name></job><job><name>j-Aggregator-Regression-Conditional</name></job>

我想将所有作业名称放入一个参数中, 所以分隔符将是“

<job><name>

" 我试过这个:

for /f "tokens=1* delims=<job><name>" %%a in "MyFile.txt" do for /f "delims=name" %%c in ("%%~b") do echo %%c

但它没有给我任何输出。 有什么想法吗?

【问题讨论】:

  • 都是一行还是每个 元素都在一个新行上?

标签: batch-file scripting


【解决方案1】:

这使用您提供的数据解决了您的问题:将行放入file.txt

@echo off
for /f "usebackq tokens=3,8,13,18,23 delims=<>" %%a in ("file.txt") do (
echo %%a,%%b,%%c,%%d,%%e
)
pause

【讨论】:

  • 关于这个脚本的 2 件事:1.) 它给了我错误的输出 "name,name,name,name,name" 2.) 我的文本文件比我在这里发布的要大得多所以我需要可以处理更多数据而不指定令牌的东西。
  • @ShacharHamuzimRajuan 1) 该脚本使用您提供的数据为我提供了您所要求的内容。 2) 如果您想要一个执行任务的脚本并且您没有提供准确的详细信息 - 那么您可能会得到一个不起作用的脚本 - 因为它不是为了处理您的不同数据而编写的。
  • 你说得对,我只是想给出一个示例文件,以便人们可以看到文件的基本结构,但我忘了提到它只是一个示例,实际文件要大得多。
  • 是的,此解决方案为我输出以下内容:jj-Aggregator-Detached-Tests,j-Aggregator-Nightly-Test,j-Aggregator-Nightly-Test-POC,j-Aggregator-Nightly-Test-POC-RunTests,j-Aggregator-Nightly-Test-TestRepo
猜你喜欢
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-10
  • 1970-01-01
  • 2018-11-12
  • 1970-01-01
  • 2013-12-17
相关资源
最近更新 更多