![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-17 16:00 |
共 47,814 主题排行 / 349,907 发帖 / 今日 4 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 如何用COPY命令合并多个文件成为一个连续的文件? |
| 可打印版本 1,596 / 5 |
| 第1楼 voiL | 发表于 2005-12-05 09:46 |
| 中级用户 发帖 189 积分 384 | |
|
如何用COPY命令合并多个文件成为一个连续的文件? 操作环境:Win XP CMD(ver 5.1.2600)因工作需要,我现在需要在批处理中读取本地的一个日志文件,并把该日志改成VBS显示出来.(日志中所存内容仅为文本文件,并无VBS语句)
所以我必须在日志的前面加上(MSGbox ")及在后面加上("),然后把它改成以.vbs作后缀的脚本,并执行它. 问题是,在批处理中以如下代码操作出现了些小问题:
执行后所得到的vbs文件里在MSGbox "的后面会多出一个回车,要知道.vbs里是不允许回车的,请论坛里的各位高手指点一二. 我发现在用echo MSGbox ">1.txt时,生成的1.txt后面会多出一行空行的,我想问题就是出现在这里,能否在用echo输入里就把里面的回车删除掉??? [ Last edited by voiL on 2005-12-5 at 09:48 ] |
|
| 第2楼 GOTOmsdos | 发表于 2005-12-05 13:29 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
用ECHO 就会自动增加回车换行的,要去掉他们,可以用DEBUG:
方法: 比如生成 1.txt: echo abc>1.txt rem 写DEBUG脚本 script:(驱除回车换行,实际就是驱除最后两个字节0D,0A) echo n 1.txt > script echo l >>script echo rcx >>script echo 3 >>script echo w >>script echo q >>script rem 运行DEBUG: debug < script 但是要算好字节.如果有多行,就比较麻烦一点. [ Last edited by GOTOmsdos on 2005-12-5 at 13:37 ] |
|
| 第3楼 voiL | 发表于 2005-12-05 16:04 |
| 中级用户 发帖 189 积分 384 | |
|
谢谢GOTOmsdos兄,您的方法我试过了,在超过3字节情况下只它会删后面的.
如果要修改起来不是很好控制. 因为我的日志文件也是用echo写进去的,所以大小会不断地增加. [ Last edited by voiL on 2005-12-5 at 17:41 ] |
|
| 第4楼 GOTOmsdos | 发表于 2005-12-05 18:57 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
看来还是要编程序解决的..
编个简单的C控制台程序就可以拉.. 然后批处理,放到计划任务里.. |
|
| 第5楼 willsort | 发表于 2005-12-05 19:06 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re voiL:
可以考虑使用 Debug 中的内嵌汇编,将 cx 值减 2 ,如果 log 文件超过 64K,则需要兼顾 bx 与 cx 值。当然,这样的方法仍然是比较笨拙的。可以考率使用字符串替换工具根据将 log 文件中 0d 0a 替换为空,或者使用其它可以处理带回车文本的 vbs 函数。 |
|
| 第6楼 无奈何 | 发表于 2005-12-06 12:06 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
你如果可以用第三方工具的话,很简单。
下面是用 SED 的解决方案: |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |