bat批处理 提取TXT某字符串 前 的字符串 代码找不到哪出了问题 。很辣手

比如现在的文件a.txt 内容如下
17-11-15-13-11-19-21-7-9-14-14-8-11-14-18-12-7-8-11-2-17-7-16-18-17-12-13-15-15-16-11-14-13-14-16-15-16-14-11-14-12-15-10-18

比如我想提取文本内11前的那组数字 比如17然后换行13换行8换行。。。然后过滤重复保存到一个新的文本里
提取的代码
@echo off
setlocal enabledelayedexpansion
for /f %%a in (a.txt) do (
set "str1=%%a"
set "str1=!str1:54k= !
for /f %%h in ("!str1!") do (
set "str2=%%h"
echo !str2:~-16!
)
)>>b.txt
echo. |b.bat "b.bat" 1.conf
exit

但是一行只能提取一组 现在一行中出现好多组 但是知道怎么改弄 。。

这个删除重复行的 却不找到怎么把他们放到一起
@echo off
for /f "delims=" %%i in (b.txt) do if not defined %%i set %%i=s&echo %%i>>c.txt
exit

第1个回答  2011-10-07
把第二个for命令去掉 /f 可以解决一行中不定数的多组问题。(当然之前处理好把处理行以空格或半角逗号分隔),并且输出时加上判断,比如要输出的是!str2!,写成if not defined #str2 echo.!str2!>>newfile&set #!str2!=y就可去掉重复行。
如果还是不会,把对应样文处理后需要的结果也贴出来,我不清楚换行处两头字符,如 “-”要如何处理
相似回答