[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
修改14楼的代码,以便解决15楼的问题:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "tokens=1*" %%a in (a.csv) do (
  4.     setlocal enabledelayedexpansion
  5.     set Line="%%b"
  6.     set Line=!Line: =" "!
  7.     set Line=!Line:""=!
  8.     for %%j in (!line!,x) do (
  9.         for /f "delims=0123456789." %%k in ("#%%~j") do (
  10.             if not "%%k"=="#" (
  11.                 if !x! equ 3 (
  12.                     set /a y+=1
  13.                     set _!y!=!str!
  14.                 ) else if !x! equ 4 (
  15.                     if defined _!y! (
  16.                         for /l %%l in (1,1,!y!) do (
  17.                             if defined FourthCol (
  18.                                 echo,%%a !_%%l! !FourthCol!
  19.                             ) else (
  20.                                 echo,%%a !_%%l!
  21.                             )
  22.                             set _%%l=
  23.                         )
  24.                         set FourthCol=
  25.                         set y=0
  26.                     )
  27.                     echo,%%a !str!
  28.                 )
  29.                 set str=%%~j
  30.                 set x=0
  31.             ) else (
  32.                 set str=!str! %%~j
  33.                 set /a x+=1
  34.                 if !x! equ 4 set FourthCol=%%~j
  35.             )
  36.         )
  37.     )
  38.     endlocal
  39. ))>out.csv
  40. pause
复制代码
这种问题对于锻炼逻辑思维很有好处。顺便练习一下if及set命令的用法。

TOP

回复 1# zhengwei007
此类在俺看来属于数据格式化一类的问题,建议用第3方工具gawk(http://bcn.bathome.net/tool/4.1.0/gawk.exe)处置,其在命令行下实现指令如下:
  1. gawk "{n=patsplit($0,a,/[a-zA-Z][^\t]+(\t[0-9.]+){3,4}/);for(i=n;i>0;i--)if(a[i]~/[a-zA-Z][^\t]+(\t[0-9.]+){4}/){a4=gensub(/^.+\t([^\t]+)$/,\"\\1\",\"g\",a[i])}else{a[i]=a[i] \"\t\" a4};for(i=1;i<=n;i++)print $1\"\t\"a[i]}" a.csv>b.txt
复制代码

TOP

#10 的powershell 很合适啊

TOP

返回列表