中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教, 如何批量删除特定字符后的换行符?
« [1] [2] »
作者:
标题: 请教, 如何批量删除特定字符后的换行符? 上一主题 | 下一主题
justine
初级用户





积分 20
发帖 9
注册 2007-9-24
状态 离线
『第 16 楼』:  

为什么大家的写法都是不能保存为另一文件呢?

2007-9-25 10:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by justine at 2007-9-25 10:15:
为什么大家的写法都是不能保存为另一文件呢?

@echo off
set num=0
setlocal enabledelayedexpansion
for /f "delims=" %%i in (aaa.txt) do (
    set /a num+=1
    set str=!str! %%i
    if !num! equ 2 echo!str!>>bbb.txt && set num=0 & set str=
)
pause

2007-9-25 10:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
justine
初级用户





积分 20
发帖 9
注册 2007-9-24
状态 离线
『第 18 楼』:  

太好了, 多谢terse!

如果已经有 bbb.txt, 是否直接覆盖呢? 这个写法对 aaa.txt 文件的长度有要求吗? 我的文件比较长, 超过6万行... ...

另外, 如果希望 bat 在后台运行, 不要显示窗口, 可以吗?

2007-9-25 11:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 19 楼』:  

用VBS吧
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /caa.bat", 0, TRUE)

aa.bat 内容:
@echo off
set num=0
setlocal enabledelayedexpansion
for /f "delims=" %%i in (aaa.txt) do (
    set /a num+=1
    set str=!str!%%i
    set str=!str: =!
    if !num! equ 2 echo !str!>>bbb.txt && set num=0 & set str=
)
ren aaa.txt aaabak.txt
ren bbb.txt aaa.txt

[ Last edited by terse on 2007-9-25 at 12:54 PM ]

2007-9-25 12:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: