标题: [文本处理] [已解决]批处理如何将文本的内容按指定格式进行转换 [打印本页]
作者: sweet惜缘 时间: 2015-5-28 17:23 标题: [已解决]批处理如何将文本的内容按指定格式进行转换
我的问题是如何把下面的两列的代码变成数字,一个数字代表一个编码,例如:
D00049 DG00282
D00059 DG01467
D00059 DG01468
D00059 DG01469
D00059 DG01470
D00059 DG01471
DG01592 DG01470
改变后可能就是
1.1 2.1
1.2 2.2
1.2 2.3
1.2 2.4
1.2 2.5
1.2 2.6
2.7 2.5
1代表格式为D+number这种格式的,2代表格式为DG+number这种格式的,小数点后面的数字代表每发现一个新的编码则小数点后面的数字自增一。
非常感谢!!不胜感激!!
作者: wankoilz 时间: 2015-5-28 18:30
本帖最后由 wankoilz 于 2015-5-28 18:32 编辑
- @echo off & setlocal enabledelayedexpansion
- (for /f "tokens=1,2 delims=0,1,2,3,4,5,6,7,8,9" %%a in (NEW_GPCR-DG.txt) do (
- for %%c in (%%a %%b) do (
- if %%c==D (set /a D+=1&set/p=1.!D!<nul) else (set/a DG+=1&set/p=2.!DG!<nul)
- )
- echo;
- ))>out.txt
复制代码
作者: sweet惜缘 时间: 2015-5-28 18:41
回复 2# wankoilz
谢谢你!有效!
作者: pcl_test 时间: 2015-5-28 18:42
本帖最后由 pcl_test 于 2015-5-28 19:00 编辑
- @echo off
- setlocal enabledelayedexpansion
- set /a n=m=0
- (for /f "usebackq delims=" %%a in ("NEW_GPCR-DG.txt") do (
- for %%b in (%%a) do (
- set "str=%%b"
- if "!str:~,2!" neq "DG" (
- if not defined %%b (
- set /a n+=1
- set /p=1.!n! <nul
- set "%%b=1.!n!"
- ) else (set /p=!%%b! <nul)
- ) else (
- if not defined %%b (
- set /a m+=1
- set /p=2.!m! <nul
- set "%%b=2.!m!"
- ) else (set /p=!%%b! <nul)
- ))
- echo;
- ))>"NUM_DG.txt"
- pause
复制代码
作者: sweet惜缘 时间: 2015-5-28 18:55
回复 4# pcl_test
经测试证明,大神你的代码才是有效的!非常感激!!!
作者: apang 时间: 2015-5-28 19:55
- @set @n=0;//&cscript -nologo -e:jscript "%~0"<NEW_GPCR-DG.txt>DG.txt & pause & exit/b
-
- var i = 0, j = 0;
- var s = WScript.StdIn.ReadAll();
- s = s.replace(/D\d+/g,function(s0){return "1." + ++i});
- s = s.replace(/DG\d+/g,function(s0){return "2." + ++j});
- WScript.Echo(s)
复制代码
作者: sweet惜缘 时间: 2015-6-3 10:36
回复 6# apang
求大神看看我最新的帖子~~~非常感激!!
作者: sweet惜缘 时间: 2015-6-3 10:37
回复 4# pcl_test
求大神看看我最新的帖子~~~非常感激!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |