[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

我的问题是如何把下面的两列的代码变成数字,一个数字代表一个编码,例如:
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: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
复制代码

TOP

回复 2# wankoilz


    谢谢你!有效!

TOP

本帖最后由 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
复制代码

TOP

回复 4# pcl_test

经测试证明,大神你的代码才是有效的!非常感激!!!

TOP

  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)
复制代码

TOP

回复 6# apang

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

TOP

回复 4# pcl_test


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

TOP

返回列表