批量添加行到输出

时间:2013-12-09 19:13:36

标签: file search batch-file cmd lines

我的批处理程序需要一些帮助。虽然我已经设法弄清楚如何使用我的转换器(感谢这里的一些成员),我现在需要搜索一个文件并在程序的输出中添加特定的数字。

以下是我正在阅读的内容的一部分

<unitNumber>7200</unitNumber>
<unitNumber>7419</unitNumber>
<unitNumber>724190</unitNumber>
<unitNumber>172419</unitNumber>

这个“unitNumber”可能超过50行,但我需要程序才能找到4个数字,而不是6个。

我还需要将它找到的数字放到这样的输出中: (在它从单元的重量中找到标签后,从代码的前面部分拉出来)

<unitWeight>17.34</unitWeight> (unitNumber would go here)
<unitWeight>17.34</unitWeight> (unitNumber would go here)
<unitWeight>17.34</unitWeight> (unitNumber would go here)

这是我到目前为止在我的代码中所看到的...似乎搜索所有内容,但未能找到文件中的特定数据..

For /F %%G IN (distance1.txt) Do (
Find "7200" "distance1.txt"
Find "7419" "distance1.txt"
If %%G LEQ 7200 goto Nonefind
If %%G GEQ 7419 goto Nonefind 
)

:Nonefind
Echo None Found!
pause

如果我能得到一些帮助,我会非常感激。 提前致谢 麦克

2 个答案:

答案 0 :(得分:0)

for /F "tokens=2 delims=><" %%a in ('findstr ">[0-9][0-9][0-9][0-9]<" distance1.txt') do echo ^<unitWeight^>17.34^</unitWeight^> %%a

答案 1 :(得分:0)

For /F "tokens=2delims=><" %%G IN (distance1.txt) Do (
 If %%G GEQ 7200 IF %%G LEQ 7419 Echo ^<unitWeight^>17.34^</unitWeight^> %%G
)