Board logo

标题: [文本处理] 批处理把文本中的制表符替换为逗号并合并行 [打印本页]

作者: largedy    时间: 2009-9-26 03:15     标题: 批处理把文本中的制表符替换为逗号并合并行

原.txt内容:
  1. 姓名 年龄 性别 民族 工龄
  2. 王鹏飞 23 男 汉 2年
复制代码
修改后.txt内容:
  1. 姓名,年龄,性别,民族,工龄,王鹏飞,23,男,汉,2年
复制代码
厂子员工200多人,以前人员登记放置在一个文件夹里面,每一就像上面原内容一样,现在总厂要统计表,格式要求如同修改后那样.我试过批量替换原容里面的"TAB"成",",但是第一行后面没有"TAB",我没法子在第一行未加上逗号,而且第二行是连起来的.
作者: Seter    时间: 2009-9-26 17:43

  1. setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (d.txt) do (
  3. set t=%%i
  4. set t=!t: =,!
  5. set r=!r!!t!,
  6. )
  7. echo %r:~0,-1%
复制代码

作者: largedy    时间: 2009-9-26 18:38

  1. setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (d.txt) do (
  3. set t=%%i
  4. set t=!t:        =,!
  5. set r=!r!!t!,
  6. )
  7. echo %r:~0,-1%>e.txt
复制代码
用的系统是WIN 2003 EE,在桌面显示找不到文件...
放置到根目录,用2楼代码显示的是echo,然后利用昨天晚上学的初级教程,我改成上面的代码基本上可以实现我想要的功能了.

谢谢2楼的...
不知道有没有拖到文件到.bat上面的.这样重命名有点麻烦~!

[ 本帖最后由 largedy 于 2009-9-26 18:45 编辑 ]
作者: keen    时间: 2009-9-26 20:16

来个VBS的:
  1. Set objFSO = CreateObject("Scripting.FileSystemObject")
  2. Set objTextFile = objFSO.OpenTextFile("a.txt", 1)
  3. Do Until objTextFile.AtEndOfStream
  4.     strLine = objTextFile.ReadLine
  5.     newLine = Replace(strLine, chr(9), ",")
  6.     strString = strString & newLine & ","
  7. Loop
  8. Set objTextFile2 = objFSO.OpenTextFile("a.txt", 2)
  9. objTextFile2.Write Left(strString, Len(strString)-1)
复制代码





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