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-1...
比如现在的文件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 展开
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个回答
展开全部
把第二个for命令去掉 /f 可以解决一行中不定数的多组问题。(当然之前处理好把处理行以空格或半角逗号分隔),并且输出时加上判断,比如要输出的是!str2!,写成if not defined #str2 echo.!str2!>>newfile&set #!str2!=y就可去掉重复行。
如果还是不会,把对应样文处理后需要的结果也贴出来,我不清楚换行处两头字符,如 “-”要如何处理
如果还是不会,把对应样文处理后需要的结果也贴出来,我不清楚换行处两头字符,如 “-”要如何处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询