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

[文本处理] 将文本内的行变成列的问题

现有a.txt,内容如下

武汉市第十六中学
   
江岸区车站街汉景村1号
027-82833390
桑炳侠
  
武汉市实验学校
   
江岸区胜利街265号
027-82794054
苏先照

我想通过批处理程序,将里面每4行变成1列,保存为b.txt

比如b.txt里面的内容是

武汉市第十六中学 江岸区车站街汉景村1号 027-82833390  桑炳侠
武汉市实验学校 江岸区胜利街265号 027-82794054 苏先照

然后再将里面的 “空格” 替换成 "tab(如何替换?主要是不知道用什么来表示tab,麻烦指教一下)"  这样可以在excel里面分列保存

另外我想问一下是否可以用批处理对excel进行操作

麻烦版主指点一下

1.好像论坛无法处理"tab"键,回去自己修改
2.批处理应该可以对excel进行操作
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (a.txt) do (
  4.   set /a n+=1
  5.   set /p=%%a <nul>>b.txt
  6.   if "!n!"=="4" (
  7.     set n=0
  8.     echo.>>b.txt
  9.   )
  10. )
  11. start notepad b.txt
复制代码

TOP

原帖由 more 于 2008-12-29 15:23 发表
1.好像论坛无法处理"tab"键,回去自己修改
2.批处理应该可以对excel进行操作@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (a.txt) do (
  set /a n+=1
  set /p=%%a        >b.txt
  if "!n!"= ...



TAB在批处理中是否可以用 几个空格 或者 相应的 符号(比如c语言里不是有换行符,回车符之类的) 来代替呢?如果有,麻烦告诉一下

TOP

稍微修改一下,楼上代码若中间空行中有空格的话则会连此行也算进去。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd.>b.txt
  4. set n=0
  5. for /f "delims=" %%a in (a.txt) do (
  6.     set "str=%%a"
  7.     set str=!str: =!
  8.     if defined str (
  9.        set /a n+=1
  10.        set /p=%%a        <nul>>b.txt
  11.        if "!n!"=="4" (
  12.          set n=0
  13.          echo.>>b.txt
  14.        )
  15.     )
  16. )
  17. pause
复制代码
对于生成的b.txt进行如下操作:
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. cd.>b.xls
  4. for /f "delims=" %%i in (b.txt) do (
  5.   set "str=%%i"
  6.   set "str=!str:  = !"
  7.   set "str=!str: ={TAB} !"
  8.   echo !str!
  9.   echo !str!>>b.xls
  10. )
  11. pause
复制代码

{TAB}处按键盘上的TAB键

[ 本帖最后由 lhjoanna 于 2008-12-29 16:35 编辑 ]

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=*" %%i in (a.txt) do (
  3.     if not "%%i"=="" (
  4.     set "str=%%i"
  5.     set/a n+=1,m=n%%4
  6.     if !m! equ 0 (>>b.xls echo !var!{TAB}%%i&set var=)else (
  7.     if !m! equ 1 (set "var=%%i")else set "var=!var!{TAB}%%i"
  8. )))
  9. pause
复制代码

TOP

返回列表