标题: [文本处理] 批处理怎样将文本添加到文本的每一行后? [打印本页]
作者: Wingl83 时间: 2008-8-5 20:58 标题: 批处理怎样将文本添加到文本的每一行后?
我想完成这样的事情:
我有两份文件:
第一份是: AAA
BBB
…… ……
第二份是:①①①
②②②
…… ……
现在我想将第二份添加到第一份的文件去,变成:
AAA ①①①
BBB ②②②
第一行对应第一行,第二行对应第二行,可以吗?
(上述文件文字为随意英文、中文或数字,不是序号之类的,只论排列,中间空格随意,最好可以按要求更改。)
作者: pusofalse 时间: 2008-8-5 21:05
- @echo off&setlocal enabledelayedexpansion&set n=-1
- for /f "delims=" %%a in (1.txt) do (
- set/a n+=1
- set flag=
- call :lp %%a
- if not defined flag echo %%a
- )
- :lp
- if "%1" equ "" set/a n+=1
- set m=skip=%n%
- if "%m%" equ "skip=0" set "m="
- for /f "%m% delims=" %%a in (2.txt) do if "%1" neq "" (echo %1 %%a&set flag=a&goto :eof) else echo %%a
- if "%1" equ "" pause
复制代码
搜索一下"练习"。。。 你的问题就可以不用提了。
[ 本帖最后由 pusofalse 于 2008-8-5 22:49 编辑 ]
作者: Batcher 时间: 2008-8-5 21:13
复制代码
http://unxutils.sourceforge.net/
作者: Wingl83 时间: 2008-8-5 22:11
2楼的可不可以输出为3.txt呢?
3楼的不行嘢,是不是代码错了?
[ 本帖最后由 Wingl83 于 2008-8-5 22:19 编辑 ]
作者: batman 时间: 2008-8-5 22:21
如两文本行是一样:- @echo off
- set "n=-1"
- :lp
- set /a n+=1
- if %n% equ 0 (set "k=") else (set "k=skip=%n%")
- for /f "%k% delims=" %%i in (1.txt) do set /p=%%i <nul>>3.txt&goto next
- :next
- for /f "%k% delims=" %%i in (2.txt) do set /p=%%i<nul>>3.txt&echo.>>3.txt&goto lp
- start 3.txt
复制代码
[ 本帖最后由 batman 于 2008-8-5 22:25 编辑 ]
作者: pusofalse 时间: 2008-8-5 22:24
把上面的代码存为a.bat 然后打开cmd 输入a>3.txt
ok
作者: batman 时间: 2008-8-5 22:25
原帖由 Wingl83 于 2008-8-5 22:11 发表
2楼的可不可以输出为3.txt呢?
3楼的不行嘢,是不是代码错了?
是将next打成nest了,已修正。
作者: Wingl83 时间: 2008-8-5 22:26
谢谢你们……
作者: Batcher 时间: 2008-8-5 22:26 标题: 回复 4楼 的帖子
Q: 为什么不行啊?
A: 去电线杆上找个老军医的手机,他是专治+包治这个的。如果治疗周期较长,建议列出你的测试环境、测试用例、出错信息,供大家帮助你解决问题。
作者: Wingl83 时间: 2008-8-5 22:30
原帖由 pusofalse 于 2008-8-5 22:24 发表
把上面的代码存为a.bat 然后打开cmd 输入a>3.txt
ok
作者: Wingl83 时间: 2008-8-5 22:32
原帖由 Batcher 于 2008-8-5 22:26 发表
Q: 为什么不行啊?
A: 去电线杆上找个老军医的手机,他是专治+包治这个的。如果治疗周期较长,建议列出你的测试环境、测试用例、出错信息,供大家帮助你解决问题。
晕倒中……
作者: pusofalse 时间: 2008-8-5 22:38
原帖由 Wingl83 于 2008-8-5 22:30 发表
193
你放哪个目录呢。。。CD 命令进入存放a.bat的目录,a>3.txt 就OK了~
比如你放C盘里,打开cmd
依次输入。。
cd /d c:\
a>3.txt
作者: Wingl83 时间: 2008-8-5 22:44
原帖由 pusofalse 于 2008-8-5 22:38 发表
你放哪个目录呢。。。CD 命令进入存放a.bat的目录,a>3.txt 就OK了~
比如你放C盘里,打开cmd
依次输入。。
cd /d c:\
a>3.txt
谢谢你啊,可以了,不知可不可以将“>>3.txt”加近代码里呢?
作者: pusofalse 时间: 2008-8-5 22:45
要在代码中好多处添加,麻烦,所以就直接这样了。
作者: Wingl83 时间: 2008-8-5 22:46
2楼、5楼中,中间的空格为1个,若我想加多几个空格,应该怎样改呢?
作者: pusofalse 时间: 2008-8-5 22:50
2楼代码已经修改。
5楼代码。。。
请自己数,第六行,set /p=%%i <nul改为set/p=%%i <nul
- -||| 好麻烦。
作者: Wingl83 时间: 2008-8-5 22:54
若我想将3.txt中2.txt的文本部分按一个“标准”对齐,应该怎样写呢?
(就像Word中的分栏一样,这个“标准”是1.txt最长的文字部分结束后的第5个字符)
作者: pusofalse 时间: 2008-8-5 22:56
set/p=%%i <nul 试下把这里的空格改为一个或两个跳格可以不。
作者: Wingl83 时间: 2008-8-5 23:11
什么是跳格?
作者: pusofalse 时间: 2008-8-5 23:18
- -||||
tab键
作者: Wingl83 时间: 2008-8-6 00:33
2.txr文字部分变成
并不是完全对齐,也不是完全不对齐……
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |