![Board logo](images/default/logo.gif)
标题: [文本处理] 将文本内的行变成列的问题 [打印本页]
作者: zcy85611 时间: 2008-12-29 14:48 标题: 将文本内的行变成列的问题
现有a.txt,内容如下
武汉市第十六中学
江岸区车站街汉景村1号
027-82833390
桑炳侠
武汉市实验学校
江岸区胜利街265号
027-82794054
苏先照
我想通过批处理程序,将里面每4行变成1列,保存为b.txt
比如b.txt里面的内容是
武汉市第十六中学 江岸区车站街汉景村1号 027-82833390 桑炳侠
武汉市实验学校 江岸区胜利街265号 027-82794054 苏先照
然后再将里面的 “空格” 替换成 "tab(如何替换?主要是不知道用什么来表示tab,麻烦指教一下)" 这样可以在excel里面分列保存
另外我想问一下是否可以用批处理对excel进行操作
麻烦版主指点一下
作者: 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 <nul>>b.txt
- if "!n!"=="4" (
- set n=0
- echo.>>b.txt
- )
- )
- start notepad b.txt
复制代码
作者: zcy85611 时间: 2008-12-29 16:21
原帖由 more 于 2008-12-29 15:23 发表 ![](http://bbs.bathome.net/images/common/back.gif)
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语言里不是有换行符,回车符之类的) 来代替呢?如果有,麻烦告诉一下
作者: lhjoanna 时间: 2008-12-29 16:30
稍微修改一下,楼上代码若中间空行中有空格的话则会连此行也算进去。- @echo off
- setlocal enabledelayedexpansion
- cd.>b.txt
- set n=0
- for /f "delims=" %%a in (a.txt) do (
- set "str=%%a"
- set str=!str: =!
- if defined str (
- set /a n+=1
- set /p=%%a <nul>>b.txt
- if "!n!"=="4" (
- set n=0
- echo.>>b.txt
- )
- )
- )
- pause
复制代码
对于生成的b.txt进行如下操作:- @echo off
- setlocal EnableDelayedExpansion
- cd.>b.xls
- for /f "delims=" %%i in (b.txt) do (
- set "str=%%i"
- set "str=!str: = !"
- set "str=!str: ={TAB} !"
- echo !str!
- echo !str!>>b.xls
- )
- pause
复制代码
{TAB}处按键盘上的TAB键
[ 本帖最后由 lhjoanna 于 2008-12-29 16:35 编辑 ]
作者: terse 时间: 2008-12-29 23:45
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=*" %%i in (a.txt) do (
- if not "%%i"=="" (
- set "str=%%i"
- set/a n+=1,m=n%%4
- if !m! equ 0 (>>b.xls echo !var!{TAB}%%i&set var=)else (
- if !m! equ 1 (set "var=%%i")else set "var=!var!{TAB}%%i"
- )))
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |