中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-27 08:52
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]for命令中如何使用双引号作为列分隔符? 查看 1,030 回复 8
楼 主 [求助]for命令中如何使用双引号作为列分隔符? 发表于 2007-12-03 21:00 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
经测试,以下两种写法都会报语法错。
@echo off
for /f "tokens=1-5 delims="" %%a in (a.txt) do (
echo %%a
)


@echo off
for /f "tokens=1-5 delims=^" %%a in (a.txt) do (
echo %%a
)


后来看到 无奈何 斑竹提到过(详见:http://www.cn-dos.net/forum/viewthread.php?tid=22634&fpage=1&highlight=sed)可以用ASII码值22来表示双引号,但当时他给出的例子是一个sed命令,我试着写了一个for命令,发现还是无法达到预期效果。
@echo off
for /f "tokens=1-5 delims=\0x22" %%a in (a.txt) do (
echo %%a
)


测试结果:
Microsoft Windows XP
(C) Copyright 1985-2001 Microsoft Corp.

C:\>type a.txt
a"b"c"d"e
C:\>test.bat
a"b"c"d"e

望各位指点。

“先把双引号替换为其它符号再处理”这个方法不能接受。

我的意思是当文件很大(几十MB的日志文件),里面的双引号不计其数时,替换双引号会花太多时间浪费太多系统资源,所以才想找个更好的方案,并不是为了吹毛求疵。

[ Last edited by HAT on 2007-12-5 at 08:53 PM ]
2 发表于 2007-12-04 09:55 ·  中国 辽宁 本溪 联通
初级用户
积分 28
发帖 11
注册 2007-11-07 17:52
18年会员
UID 101992
性别 男
状态 离线
请高人指点...
3 发表于 2007-12-04 12:11 ·  中国 广东 广州 番禺区 电信
初级用户
积分 86
发帖 45
注册 2007-07-26 17:35
18年会员
UID 94082
性别 男
状态 离线
如果可以用双引号,偶也希望有高手指点啊.......不过偶觉得用一个 " 就可以了,没有必要用 "" 两个吧?呵呵
4 发表于 2007-12-04 12:15 ·  中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
先把双引号替换为其他符号,之后再处理
正在潜水修练的批处理小白
5 发表于 2007-12-05 14:22 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
“先把双引号替换为其它符号再处理”这个方法不能接受。
6 发表于 2007-12-05 15:30 ·  中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
for 的 "options" 要用到“”来设置,所以for里的双引号比较特别,应该是不能用双引号

PS:如果确实不能接受宝马的价格,那你只能买QQ了,你不能说不能接受宝马的价格,宝马就得降到3万块(宝马自行车除外)
7 发表于 2007-12-05 20:51 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
我的意思是当文件很大(几十MB的日志文件),里面的双引号不计其数时,替换双引号会花太多时间浪费太多系统资源,所以才想找个更好的方案,并不是为了吹毛求疵。
8 发表于 2007-12-05 21:03 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
不用求助了,已经讨论N久了,这个话题,没办法解决的。

还是用用第三方工具吧,替换法也还是有缺陷的。
9 发表于 2007-12-05 21:28 ·  中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
1、第三方工具:sed之类
2、VBS
论坛跳转: