中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 20:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 在批处理中,如何删除一个文件中第二行以后的所有引号?
楼 主 在批处理中,如何删除一个文件中第二行以后的所有引号? 发表于 2006-10-03 14:49 ·  中国 北京 房山区 联通
初级用户
积分 32
发帖 12
注册 2006-10-03 13:45
UID 64433
性别 男
状态 离线
我有个my.txt,
内容是:
“我的名字”
“我的年龄”
“my name is hb”
"my age is 100"
。。。
请问个位大侠,我想删除my.txt 中的从第二行以后出现的所有引号,应该写个什么样的批处理???
谢啦;)

[ Last edited by nowala on 2006-10-3 at 15:09 ]
2 发表于 2006-10-03 19:52 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
UID 58987
来自 湖南.娄底
状态 离线
代码如下:


@echo off
set num=0
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (my.txt) do (
set content=%%i
set /a num+=1
if !num! gtr 2 set content=!content:"=!
echo !content!>>my_.txt
)
pause



[ Last edited by pengfei on 2006-10-3 at 21:19 ]
3 发表于 2006-10-03 21:14 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  楼上的这一句出错了:if not "!num!"=="2" set content=!content:"=!,因为楼主是 想删除my.txt 中的从第二行以后出现的所有引号,而pengfei的代码是除了第二行的,其余行的引号全被去掉了。不过楼主的描述也有问题,不知道楼主是要删除从第二行开始所有行的引号,还是删除第二行之后的所有行的引号,姑且认为是第一种情况,那么,楼上的 if 条件得改一下,改成 if !num! geq 2 set content=!content:"=! 就可以了。

[ Last edited by namejm on 2006-10-3 at 21:25 ]
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
4 发表于 2006-10-03 21:20 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
UID 58987
来自 湖南.娄底
状态 离线
呵呵~ 是我看错了, 代码已修改, 多谢namejm兄提醒.
5 发表于 2006-10-03 21:38 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
2楼的不去“和”两种引号,下面的可以删除“和”与"三种引号!
off
set num=0
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (my.txt) do (
set content=%%i
set /a num+=1
if !num! gtr 2 set content=!content:"=!
if !num! gtr 2 set content=!content:“=!
if !num! gtr 2 set content=!content:”=!
echo !content!>>my_.txt
)
pause
6 发表于 2006-10-03 21:42 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  呵呵,顶楼的引号既有全角状态下的,也有半角状态下的,不是很统一,顶楼的例子是原文就是这样的,还是纯手工输入的时候输入法切换出错打出来的?
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
7 发表于 2006-10-03 21:49 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
8 发表于 2006-10-03 22:01 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
UID 58987
来自 湖南.娄底
状态 离线
可能是楼主在中英文切换时, 没注意到这一点.
9 发表于 2006-10-04 01:26 ·  中国 北京 房山区 联通
初级用户
积分 32
发帖 12
注册 2006-10-03 13:45
UID 64433
性别 男
状态 离线
谢谢各位大家了,我的引号在输入时不小心弄成这样的,呵呵!!~
我是想从第三行开始删除引号的!!~谢谢啦!!!~
10 发表于 2006-10-04 01:29 ·  中国 北京 房山区 联通
初级用户
积分 32
发帖 12
注册 2006-10-03 13:45
UID 64433
性别 男
状态 离线
太感谢大家了,真爱死你们了!~哈哈
论坛跳转: