标题: [文本处理] [已解决]批处理如何截取字段? [打印本页]
作者: oqis 时间: 2015-2-11 11:36 标题: [已解决]批处理如何截取字段?
本帖最后由 oqis 于 2015-4-15 15:55 编辑
a.txt- arv19750914003P22946
- arv1980060400P2394672
- arv1999092300223P22946997
- .
- .
- .
复制代码
有十几行,我想截取前面一段输出成这样:- arv19750914003P22
- arv1980060400P23
- arv1999092300223P22
- .
- .
复制代码
哪位出出手~~~
作者: DAIC 时间: 2015-2-11 12:34
- @echo off
- setlocal enabledelayedexpansion
- (for /f "tokens=1-2 delims=P" %%i in (1.txt) do (
- set suffix=%%j
- echo %%iP!suffix:~0,2!
- ))>2.txt
复制代码
作者: pcl_test 时间: 2015-2-11 12:34
回复 1# oqis
是截取从第一个字符到p后面两个的字符吗?
作者: 愤怒的CMD 时间: 2015-2-11 14:24
gawk -FP "gsub(substr($2,3),\"\")"
作者: pcl_test 时间: 2015-2-11 14:34
本帖最后由 pcl_test 于 2015-4-15 17:32 编辑
回复 1# oqis - @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('type "a.txt"') do (
- call :loop %%a
- )
- pause
- :loop
- set str=%1
- for /l %%i in (0,1,100) do (
- if "!str:~%%i,1!"=="P" set "n=%%i"
- )
- set /a n+=3
- echo !str:~0,%n%!
- goto :eof
复制代码
作者: oqis 时间: 2015-2-11 18:42
回复 2# DAIC
很满意 多谢~~
作者: oqis 时间: 2015-2-11 18:42
回复 5# pcl_test
行 谢谢了
作者: c755731262 时间: 2015-2-12 10:44
- @echo off&color f0&setlocal enabledelayedexpansion
- (for /f "delims=" %%h in (a.txt) do (
- set str=%%h
- for /l %%i in (0,1,100) do (
- if "!str:~%%i,1!" == "P" (
- set /a n=%%i+3
- call echo %%str:~0,!n!%%
- )
- )
- )
- )>test.txt
- pause
复制代码
回复 8# c755731262
刚才发错了,很抱歉
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |