人们!
我不确定这是一项非常简单的任务,还是一项非常复杂的任务,但无论如何我都在努力解决这个问题。假设我有一个这样的文本文件:
11111FOO
11111BAR
22222ZOOM
33333FOO
11111CAR
我想在Windows中找出一个命令行,我可以将其放入一个批处理文件中,该文件将从该文件中提取文本字符串并将它们推送到新文件。我会传入前导字符串来搜索,它会从该字符串的结尾到下一个新行。
所以使用上面的例子,如果我说前导字符串是11111,我会得到一个看起来像这样的新文本文件:
FOO
BAR
CAR
其他一切都会被忽略。
谢谢!
答案 0 :(得分:2)
如果输入文件中没有潜在的毒药字符,那么这可能就足够了:
@(For /F "UseBackQ Delims=" %%A In ("input.txt") Do @(Set "an=%%A"
For /L %%B In (%%A 1 %%A) Do @Call Echo %%an:*%%B=%%))>"output.txt"
Magoo的补充:
@Echo Off
(For /F "UseBackQ Delims=" %%A In ("q46858215.txt") Do (Set "an=%%A"
For /L %%B In (%%A 1 %%A) Do Call Echo %%an:*%%B=%%))>"Output1.txt"
If "%~1"=="" GoTo :Next
(For /F "Delims=" %%A In ('FindStr/BLC:"%~1" "q46858215.txt"') Do (
Set "an=%%A"
For /L %%B In (%%A 1 %%A) Do Call Echo %%an:*%%B=%%))>"Output2.txt"
:Next
(For /F "UseBackQ Delims=" %%A In ("q46858215.txt") Do (Set "an=%%A"
For /L %%B In (%%A 1 %%A) Do Echo %%B))>"Output3.txt"
我使用了包含OP数据的名为q46858215.txt
的文件进行测试。
生成三个输出文件:
Output1.txt:Compo的原文
Output2.txt:过滤以隔离以开头的行(第一个参数到例程)
Output3.txt:Compo的原始版本反向显示已隔离的数字