经测试,以下两种写法都会报语法错。
@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 ]