中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-26 09:53
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,275 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]for命令中如何使用双引号作为列分隔符?
可打印版本  1,216 / 8
第1楼 HAT 发表于 2007-12-03 21:00
版主 发帖 5,017 积分 9,023
[求助]for命令中如何使用双引号作为列分隔符?
经测试,以下两种写法都会报语法错。




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


测试结果:
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楼 bxdonne 发表于 2007-12-04 09:55
初级用户 发帖 11 积分 28
请高人指点...
第3楼 greenworld 发表于 2007-12-04 12:11
初级用户 发帖 45 积分 86
如果可以用双引号,偶也希望有高手指点啊.......不过偶觉得用一个 " 就可以了,没有必要用 "" 两个吧?呵呵
第4楼 dikex 发表于 2007-12-04 12:15
高级用户 发帖 366 积分 788
先把双引号替换为其他符号,之后再处理
第5楼 HAT 发表于 2007-12-05 14:22
版主 发帖 5,017 积分 9,023
“先把双引号替换为其它符号再处理”这个方法不能接受。
第6楼 zh159 发表于 2007-12-05 15:30
金牌会员 发帖 1,467 积分 3,687
for 的 "options" 要用到“”来设置,所以for里的双引号比较特别,应该是不能用双引号

PS:如果确实不能接受宝马的价格,那你只能买QQ了,你不能说不能接受宝马的价格,宝马就得降到3万块(宝马自行车除外)
第7楼 HAT 发表于 2007-12-05 20:51
版主 发帖 5,017 积分 9,023
我的意思是当文件很大(几十MB的日志文件),里面的双引号不计其数时,替换双引号会花太多时间浪费太多系统资源,所以才想找个更好的方案,并不是为了吹毛求疵。
第8楼 abcd 发表于 2007-12-05 21:03
银牌会员 发帖 739 积分 1,436
不用求助了,已经讨论N久了,这个话题,没办法解决的。

还是用用第三方工具吧,替换法也还是有缺陷的。
第9楼 zh159 发表于 2007-12-05 21:28
金牌会员 发帖 1,467 积分 3,687
1、第三方工具:sed之类
2、VBS
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023