批处理 提取指定字符串前面规定个数的字符串

例如文本文件a.txt内容:abckjdhasldjfajlksdf54kgfasdfgsadfagfdsgsdfgfdsg54ksdfgasdlfkj;alsdjf;l... 例如文本文件a.txt内容:
abckjdhasldjfajlksdf54k
gfasdfgsadfagfdsgsdfgfdsg54ksdfg
asdlfkj;alsdjf;lkjfdalskj;alskfjfdjaa54kdfhkdafshka

提取字符串"54k"前面16位不包括54k

提取后结果保存到文本b.txt内容如下:
jdhasldjfajlksdf
dfagfdsgsdfgfdsg
lskj;alskfjfdjaa
如果答的好我还加分!!谢谢
展开
 我来答
百度网友36cfbdc56
2008-11-21 · TA获得超过1216个赞
知道大有可为答主
回答量:1262
采纳率:0%
帮助的人:0
展开全部
@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
pause

不用楼上那么麻烦的。我的处理方式如上!
把结果保存到b.txt
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忆林子
2008-11-30 · TA获得超过2034个赞
知道大有可为答主
回答量:4079
采纳率:0%
帮助的人:2726万
展开全部
在批处理中要分隔字符串的话,可以用for命令的delims来设置,没有直接以一个字符串来做分隔的,不过你可以先用set命令把字符串替换成一个自己自定义的分隔符,默认系统的分隔符就是空格,你也可以直接换成空格。hackate给你的答案就是用空格做为分隔符。如果你的结果中刚好有空格的话,那你就要自定义分隔符了。思路的话,也就是hackate给你的那个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuzhaonan11
2008-11-21 · TA获得超过3711个赞
知道大有可为答主
回答量:2250
采纳率:0%
帮助的人:0
展开全部
@echo off
setlocal enabledelayedexpansion
call:main
endlocal
echo.
pause>con
goto :eof

:main
set "p=54k"
set "length=3"
(
for /f "delims=" %%i in ('type a.txt') do (
set "line=%%i"
call:findstr line p !length!
if !answer! geq 16 (
set /a "start=answer-16"
for %%i in (!start!) do (echo !line:~%%i,16!)
)
)
)>b.txt
goto :eof

:findstr
set /a "num1=0"
set /a "step=256"
:1
set /a "num2=num1+step-1"
for /l %%i in (!num1!,1,!num2!) do (
if "!%~1:~%%i,%~3!"=="!%~2!" set "answer=%%i" & goto :eof
if "!%~1:~%%i,1!"=="" set "answer=-1" & goto :eof
)
set /a "num1=num1+step"
goto 1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
314ccp
2008-11-23 · TA获得超过5625个赞
知道大有可为答主
回答量:1497
采纳率:0%
帮助的人:2151万
展开全部
hackate高手~帮你顶一个~呵呵!

~~以后要多多向你学习了~~

这么精悍的代码,LZ应该加分啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
meteortent
2008-11-21 · TA获得超过518个赞
知道小有建树答主
回答量:870
采纳率:0%
帮助的人:733万
展开全部
你想要哪个54K前面的内容呀?用substring函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式