中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-19 06:35
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何拆分和合并 查看 664 回复 5
楼 主 如何拆分和合并 发表于 2008-03-27 18:54 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
UID 90856
性别 男
状态 离线
比如说有个1.txt文件,内容如下
aaa
bbb
ccc
现在把他按行拆分变为
2.txt内容为aaa,3.txt内容为bbb,4.txt内容为ccc,这是一个问题,如果能拆分又怎么把他合并为5.txt内容为
ccc
bbb
aaa
谢谢
2 方法比较笨但可以实现: 发表于 2008-03-27 19:28 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
还是用set /p a=<1.txt
cd . >a.txt
for /f "tokens=*" %%b in (1.txt) do call :get %%b
for /f "tokens=1" %%c in (a.txt) do echo %%c >2.txt
for /f "tokens=2" %%c in (a.txt) do echo %%c >3.txt
for /f "tokens=3" %%c in (a.txt) do echo %%c >4.txt
for /f "tokens=1" %%d in (4.txt) do echo %%d >5.txt
for /f "tokens=1" %%e in (3.txt) do echo %%e >>5.txt
for /f "tokens=1" %%f in (2.txt) do echo %%f >>5.txt
del a.txt
goto :eof
:get
set /p a=<a.txt
echo %a%%1 >a.txt&goto :eof


[ Last edited by zw19750516 on 2008-3-27 at 07:30 PM ]
批处理之家新域名:www.bathome.net
3 发表于 2008-03-27 19:50 ·  中国 天津 电信
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n .* 1.txt') do (
set /a num=%%i+1
echo %%j>"!num!.txt"
)
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
fengzi +1 2008-03-28 16:12
4 发表于 2008-03-27 19:52 ·  中国 天津 电信
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
合并
@echo of
copy 2.txt+3.txt+4.txt 5.txt
pause
5 发表于 2008-03-27 20:50 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
我怎么忘记copy了,受教了abcd
批处理之家新域名:www.bathome.net
6 还是可以利用call代替变量延迟: 发表于 2008-03-27 21:59 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
@echo off
set n=1
for /f "tokens=*" %%i in (1.txt) do call :change %%i
copy 4.txt+3.txt+2.txt 5.txt
goto :eof
:change
set /a n+=1
echo %1 >%n%.txt&goto :eof


[ Last edited by zw19750516 on 2008-3-27 at 10:03 PM ]
批处理之家新域名:www.bathome.net
论坛跳转: