标题: [文本处理] [已解决]批处理按格式要求输出文本内容到各个TXT [打印本页]
作者: blueskyczg 时间: 2014-5-8 09:13 标题: [已解决]批处理按格式要求输出文本内容到各个TXT
一个目录下有多个相似文本a.txt,b.txt,c.txt...,文本内容如下
坐标系=西安坐标系
几度分带=
投影类型=高斯克吕格
计量单位=米
带号=
精度=
转换参数=X平移,Y平移,
[地块坐标]
4,1.4653,2009-43,地块1,面,57,未利用地,,@
J01,1,X,Y
J02,1,X,Y
J03,1,X,Y
J01,1,X,Y
4,1.3925,2009-43,地块2,面,57,未利用地,,@
J01,1,X,Y
J02,1,X,Y
J03,1,X,Y
J01,1,X,Y
4,1.3925,2009-43,地块3,面,57,未利用地,,@
J01,1,X,Y
J02,1,X,Y
J03,1,X,Y
J01,1,X,Y
请教大神把文本的内容按照
J01,Y,X
J02,Y,X
J03,Y,X
J01,Y,X
注意位置
为一个文本输出,文本名称是J01上一行的"地块1"。同样地块2、地块3也是这样格式输出!
但是因为b.txt,c.txt...中同样有很多地块,所以要把每个txt输出的文本放在以文本名称命名
的文件夹内。
作者: apang 时间: 2014-5-8 10:14
本帖最后由 apang 于 2014-5-8 10:47 编辑
- @echo off & setlocal enabledelayedexpansion
- for %%i in (*.txt) do (
- md "%%~ni" 2>nul
- for /f "usebackq delims=" %%a in ("%%i") do (
- set "str=%%a"
- if "!str:,地块=!" neq "!str!" (
- for /f "delims=," %%b in ("!str:*,地块=!") do (
- set "Name=地块%%b"
- )
- ) else if defined Name (
- for /f "tokens=1,3,4delims=, " %%b in ("!str!") do (
- echo,%%b,%%d,%%c>>"%%~ni\!Name!.txt"
- )
- )
- )
- set "Name="
- )
- pause
复制代码
作者: blueskyczg 时间: 2014-5-8 10:28
回复 2# apang
文本内容不是按照给出的格式,原始的是
J01,1,X,Y
J02,1,X,Y
J03,1,X,Y
J01,1,X,Y
现在的是
J01,Y,X
J02,Y,X
J03,Y,X
J01,Y,X
麻烦再帮忙看看,谢谢!
作者: apang 时间: 2014-5-8 10:48
回复 3# blueskyczg
已修改
作者: blueskyczg 时间: 2014-5-8 11:05
回复 4# apang
已解决,非常感谢!
顺便问下,Excel的相似的文本内容可以批处理么?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |