CMD Batch - 在循环文件时搜索最后出现的字符

时间:2016-11-17 13:57:46

标签: windows loops batch-file cmd

我有一个.txt文件,我遍历每一行并假脱机到另一个文件。好吧到目前为止没问题。但我不想假脱机线,有以下标准:

它们包含更多斜杠。找到最后一个斜线。在此之后,搜索字符串的其余部分。***(* =通配符)。如果没有找到,请不要假脱机,否则假脱机。

输入文件内容,例如:

c:/abc/abc/
c:/abc/abc/test.txt
c:/eee/
c:/eee/test.cfg
c:/test/abc/test/xxx/bbb/ccc/aaa/test.txt
c:/test/abc/test/xxx/bbb/ccc/aaa/

输出应如下所示:

c:/abc/abc/test.txt
c:/eee/test.cfg
c:/test/abc/test/xxx/bbb/ccc/aaa/test.txt

这些线条不是静态的,应该删除。所以我想找到最后一个斜线,并在那之后全部拿走,看看是否有最后的东西是“。***”如果是这样的话,请不要回声

我不想使用其他工具。必须通过本机命令行功能来完成。

也许有人可以帮助我。

代码:

 >OUTPUT.txt (
FOR /F "usebackq delims=" %%I IN ("FILE.txt") DO (
set "line=%%I"
setlocal enabledelayedexpansion
rem DO SOMEHTING HERE I DON`T KNOW HOW TO DO
echo(!line!)
)
)

1 个答案:

答案 0 :(得分:0)

只需使用findstr在一行中执行此操作,其正则表达式模式(\....$表示所有字符串以.结尾,后跟3个字符):

findstr /R \....$ FILE.txt

结果:

c:/abc/abc/test.txt
c:/eee/test.cfg
c:/test/abc/test/xxx/bbb/ccc/aaa/test.txt