Board logo

标题: [文本处理] [已解决]批处理如何将文本的内容按指定格式进行转换 [打印本页]

作者: 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 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. (for /f "tokens=1,2 delims=0,1,2,3,4,5,6,7,8,9" %%a in (NEW_GPCR-DG.txt) do (
  3.      for %%c in (%%a %%b) do (
  4.         if %%c==D (set /a D+=1&set/p=1.!D!<nul) else (set/a DG+=1&set/p=2.!DG!<nul)
  5.     )
  6.     echo;
  7. ))>out.txt
复制代码

作者: sweet惜缘    时间: 2015-5-28 18:41

回复 2# wankoilz


    谢谢你!有效!
作者: pcl_test    时间: 2015-5-28 18:42

本帖最后由 pcl_test 于 2015-5-28 19:00 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a n=m=0
  4. (for /f "usebackq delims=" %%a in ("NEW_GPCR-DG.txt") do (
  5. for %%b in (%%a) do (
  6. set "str=%%b"
  7. if "!str:~,2!" neq "DG" (
  8.   if not defined %%b (
  9.     set /a n+=1
  10.   set /p=1.!n!  <nul
  11.   set "%%b=1.!n!"
  12.   ) else (set /p=!%%b!  <nul)
  13. ) else (
  14.   if not defined %%b (
  15.     set /a m+=1
  16.   set /p=2.!m!  <nul
  17.   set "%%b=2.!m!"
  18.   ) else (set /p=!%%b!  <nul)
  19. ))
  20. echo;
  21. ))>"NUM_DG.txt"
  22. pause
复制代码

作者: sweet惜缘    时间: 2015-5-28 18:55

回复 4# pcl_test

经测试证明,大神你的代码才是有效的!非常感激!!!
作者: apang    时间: 2015-5-28 19:55

  1. @set @n=0;//&cscript -nologo -e:jscript "%~0"<NEW_GPCR-DG.txt>DG.txt & pause & exit/b
  2. var i = 0, j = 0;
  3. var s = WScript.StdIn.ReadAll();
  4. s = s.replace(/D\d+/g,function(s0){return "1." + ++i});
  5. s = s.replace(/DG\d+/g,function(s0){return "2." + ++j});
  6. WScript.Echo(s)
复制代码

作者: sweet惜缘    时间: 2015-6-3 10:36

回复 6# apang

求大神看看我最新的帖子~~~非常感激!!
作者: sweet惜缘    时间: 2015-6-3 10:37

回复 4# pcl_test


    求大神看看我最新的帖子~~~非常感激!!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2