标题: [文本处理] [已解决]批处理怎样把采集数据格式转换成文本文件? [打印本页]
作者: hkldd 时间: 2015-6-21 11:54 标题: [已解决]批处理怎样把采集数据格式转换成文本文件?
有软件导出的数据文本(数据采集记录分类.txt),里面有很多数据格式如下示例文档;
数据采集记录分类.txt (文档中毎三行为一个数据记录)- 条件06-05数据采集
- 39
- 25
- 条件06-sh10数据采集
- 17
- 11
- 条件06-sh11-21-数据采集
- 17
- 09
- 条件06-改良类-01数据采集
- 509
- 487
复制代码
想把它转换成下面的样式;也就是毎个记录转成一个独立的文档
条件06-05数据采集.txt- del D:\条件06-05数据采集\39.txt
- del D:\条件06-05数据采集\38.txt
- del D:\条件06-05数据采集\37.txt
- del D:\条件06-05数据采集\36.txt
- del D:\条件06-05数据采集\35.txt
- del D:\条件06-05数据采集\34.txt
- del D:\条件06-05数据采集\33.txt
- del D:\条件06-05数据采集\32.txt
- del D:\条件06-05数据采集\31.txt
- del D:\条件06-05数据采集\30.txt
- del D:\条件06-05数据采集\29.txt
- del D:\条件06-05数据采集\28.txt
- del D:\条件06-05数据采集\27.txt
- del D:\条件06-05数据采集\26.txt
- del D:\条件06-05数据采集\25.txt
复制代码
条件06-sh10数据采集.txt- del D:\条件06-sh10数据采集\17.txt
- del D:\条件06-sh10数据采集\16.txt
- del D:\条件06-sh10数据采集\15.txt
- del D:\条件06-sh10数据采集\14.txt
- del D:\条件06-sh10数据采集\13.txt
- del D:\条件06-sh10数据采集\12.txt
- del D:\条件06-sh10数据采集\11.txt
复制代码
条件06-sh11-21-数据采集.txt- del D:\条件06-sh11-21-数据采集\17.txt
- del D:\条件06-sh11-21-数据采集\16.txt
- del D:\条件06-sh11-21-数据采集\15.txt
- del D:\条件06-sh11-21-数据采集\14.txt
- del D:\条件06-sh11-21-数据采集\13.txt
- del D:\条件06-sh11-21-数据采集\12.txt
- del D:\条件06-sh11-21-数据采集\11.txt
- del D:\条件06-sh11-21-数据采集\10.txt
- del D:\条件06-sh11-21-数据采集\09.txt
复制代码
条件06-改良类-01数据采集.txt- del D:\条件06-改良类-01数据采集\509.txt
- del D:\条件06-改良类-01数据采集\508.txt
- del D:\条件06-改良类-01数据采集\507.txt
- del D:\条件06-改良类-01数据采集\506.txt
- del D:\条件06-改良类-01数据采集\505.txt
- del D:\条件06-改良类-01数据采集\504.txt
- del D:\条件06-改良类-01数据采集\503.txt
- del D:\条件06-改良类-01数据采集\502.txt
- del D:\条件06-改良类-01数据采集\501.txt
- del D:\条件06-改良类-01数据采集\500.txt
- del D:\条件06-改良类-01数据采集\499.txt
- del D:\条件06-改良类-01数据采集\498.txt
- del D:\条件06-改良类-01数据采集\497.txt
- del D:\条件06-改良类-01数据采集\496.txt
- del D:\条件06-改良类-01数据采集\495.txt
- del D:\条件06-改良类-01数据采集\494.txt
- del D:\条件06-改良类-01数据采集\493.txt
- del D:\条件06-改良类-01数据采集\492.txt
- del D:\条件06-改良类-01数据采集\491.txt
- del D:\条件06-改良类-01数据采集\490.txt
- del D:\条件06-改良类-01数据采集\489.txt
- del D:\条件06-改良类-01数据采集\488.txt
- del D:\条件06-改良类-01数据采集\487.txt
复制代码
我现在转换是用excel下手工转,太多太麻烦还出差,想请大家看看能用批处理解决不,或者别的简洁方式,谢谢!
作者: yangfengoo 时间: 2015-6-21 20:20
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=*" %%a in (数据采集记录分类.txt) do (
- set/a n+=1
- set #!n!=%%a
- if !n!==3 (
- set n=0
- if !#2! lss 10 set/a #2=1!#2!-100
- if !#3! lss 10 set/a #3=1!#3!-100
- for /l %%b in (!#3!,1,!#2!) do (
- if %%b lss 10 (set #=0%%b) else (set #=%%b)
- echo,del d:\!#1!\!#!.txt
- )
- )
- )
- pause
复制代码
作者: dizimotong 时间: 2015-6-22 12:12
本帖最后由 dizimotong 于 2015-6-22 12:52 编辑
我是新手,也尝试了一下写了以下代码,自己测试可以,希望帮到你- @echo off&setlocal EnableDelayedExpansion
-
- for /f %%i in (数据采集记录分类.txt) do (
- set /a flag=0
- echo %%i|findstr "条件" >nul && (set name=%%i & set num=1) || set /a flag=1
- set name=!name: =!
-
-
- if !flag! equ 1 (
- if "!num!"=="1" (
- set start=%%i
- set num=2
- set /a flag=0
- )
- )
- if !flag! equ 1 (
- if "!num!"=="2" (
- set end=%%i
- if !start! lss 10 set /a start=1!start!-100
- if !end! lss 10 set /a end=1!end!-100
- for /l %%j in (!start!,-1,!end!) do (
- if %%j lss 10 ( echo del D:\!name!\0%%j.txt >>!name!.txt )else (
- echo del D:\!name!\%%j.txt >>!name!.txt )
- )
- )
- )
-
-
- )
复制代码
作者: dizimotong 时间: 2015-6-22 12:51
看了2楼的代码,发现自己的有漏洞,已经修改过来,同时觉得2楼的代码比较简洁,学写了
作者: xxpinqz 时间: 2015-6-22 13:18
回复 4# dizimotong
其实还有漏洞,你改一组数据,101-009看看
作者: xxpinqz 时间: 2015-6-22 14:12
凑个数- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in (数据采集记录分类.txt) do (
- set /a n=n%%3+1
- set _!n!=%%a
- if !n! equ 3 (
- set l=!_3!fedcba9876543210
- set /a l=!l:~15,1!
- for %%b in (!l!) do (
- for /l %%c in (1!_2!,-1,1!_3!) do (
- set _=%%c
- echo,del D:\!_1!\!_:~-%%b!.txt
- )
- )
- )>!_1!.txt
- )
复制代码
作者: dizimotong 时间: 2015-6-22 16:17
回复 7# xxpinqz
感谢你的提醒,看了你的代码,并且测试了一下,很简洁,而且解决了bug,学习了!
作者: hkldd 时间: 2015-6-29 23:51
谢谢大家!根据你们的代码修改了一下,已经完全搞定!万分感谢!!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |