![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-25 22:15 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助!! 怎么样把一个文本内的多行拼接成一行 |
| 可打印版本 3,623 / 25 |
| 第1楼 qinqong | 发表于 2006-07-19 13:58 |
| 高级用户 发帖 148 积分 599 | |
|
求助!! 怎么样把一个文本内的多行拼接成一行 问题是这样的,有一个文本文件,里而的内容如下
/lib/AdaptiveMQ.jar /lib/AdaptiveMQ.jar /lib/FIX.jar 我怎么才能把它放到另外一个文件中,其内容为: /lib/AdaptiveMQ.jar ;/lib/AdaptiveMQ.jar ;/lib/FIX.jar |
|
| 第2楼 zh159 | 发表于 2006-07-19 14:12 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
这几天也在编一些批处理,学习了一些简单的
@echo off 其中的 %New1%~%NewN% 根据行数增加递增 |
|
| 第3楼 qinqong | 发表于 2006-07-19 14:15 |
| 高级用户 发帖 148 积分 599 | |
|
如果我不知道原文本有多少行呢?怎么做急用,谢了
|
|
| 第4楼 bagpipe | 发表于 2006-07-19 14:56 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
@echo off
setlocal enabledelayedexpansion for /f "delims=" %%a in (原文件.txt) do ( if not defined a (set a=%%a) else (set a=!a!;%%a) ) echo %a%>生成文件.txt 可以确定的是,如果文件长度过于太大绝对不成,因为cmd中SET设置变量是有一定要求的,也请高人想想这个批处理怎么写.....................楼主可以试试上面的代码,如果不成就说明文件长度过大 |
|
| 第5楼 qinqong | 发表于 2006-07-19 15:01 |
| 高级用户 发帖 148 积分 599 | |
|
好的谢谢了
|
|
| 第6楼 bagpipe | 发表于 2006-07-19 15:05 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
测试完了告诉我一下结果
[ Last edited by bagpipe on 2006-7-19 at 15:07 ] |
|
| 第7楼 namejm | 发表于 2006-07-19 15:05 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
呵呵,bagpipe又出手了。
if not defined a (set a=%%a) else (set a=!a!;%%a)这句中的defined是什么意思?头一次看到这种用法,能不能把这条代码解释一下? |
|
| 第8楼 qinqong | 发表于 2006-07-19 15:21 |
| 高级用户 发帖 148 积分 599 | |
|
恩,搞定了,好久没用过dos了,都忘的差不多了,多谢 bagpipe的帮忙
|
|
| 第9楼 doscc | 发表于 2006-07-19 16:37 |
| 中级用户 发帖 93 积分 256 来自 广东 | |
Originally posted by namejm at 2006-7-19 15:05: 意思就是说. 如果没有定议 a 就 执行 set a=%%a 如果定议了就 执行 else 后的语句! |
|
| 第10楼 zh159 | 发表于 2006-07-19 18:17 |
| 金牌会员 发帖 1,467 积分 3,687 | |
@echo off 试过400行的没问题,500行就出错了,好像是for不下去了 ,根本未执行到Temp.bat,效率比bagpipe的差,不过SET设置变量没有bagpipe的大[ Last edited by zxcv on 2006-7-19 at 18:54 ] |
|
| 第11楼 3742668 | 发表于 2006-07-19 22:39 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
在批处理的实际应用中,建议不要使用太多的变量。
在命令提示符下运行。若要写到脚本中,更改%i为%%i。对于文本中出现引号的情况没有做出错处理。 |
|
| 第12楼 zh159 | 发表于 2006-07-19 22:52 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
还是3742668版主的厉害,我和bagpipe的500行就挂了,3742668版主的1200行还没问题
|
|
| 第13楼 bagpipe | 发表于 2006-07-20 09:05 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
没想到SET /P还能够连续对接文本内容,自愧不如..............
|
|
| 第14楼 amao | 发表于 2007-02-03 14:17 |
| 中级用户 发帖 152 积分 316 | |
|
@sed -e :a -e "N;$!ba;s/ *\n/ ;/g;s/*$//" test.txt
参考了无奈何斑竹的有关代码加以修改,3600行以上也可以。 [ Last edited by amao on 2007-2-3 at 02:58 PM ] |
|
| 第15楼 jmz573515 | 发表于 2007-02-04 01:18 |
| 银牌会员 发帖 464 积分 1,212 | |
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |