中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 22:30
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教, 如何批量删除特定字符后的换行符? 查看 1,962 回复 18
16 发表于 2007-09-25 10:15 ·  中国 广东 汕头 澄海区 电信
初级用户
积分 20
发帖 9
注册 2007-09-24 13:04
18年会员
UID 98184
性别 女
状态 离线
为什么大家的写法都是不能保存为另一文件呢?
17 发表于 2007-09-25 10:52 ·  中国 江苏 常州 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
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
18 发表于 2007-09-25 11:08 ·  中国 广东 汕头 澄海区 电信
初级用户
积分 20
发帖 9
注册 2007-09-24 13:04
18年会员
UID 98184
性别 女
状态 离线
太好了, 多谢terse!

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

另外, 如果希望 bat 在后台运行, 不要显示窗口, 可以吗?
19 发表于 2007-09-25 12:36 ·  中国 江苏 常州 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
用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 ]
论坛跳转: