中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 17:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]关于反斜杠转义的层层剥离 查看 577 回复 1
楼 主 [讨论]关于反斜杠转义的层层剥离 发表于 2008-05-28 11:05 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
经过试验,作出两点猜测,各位一起求证求证:
1、命令本身自然会转义一层
2、多出的单个反斜杠无效
3、每个|符会增加一层转义

请看如下试验,本义是想把c:\替换成\\PPC,但试验后发现要7个反斜杠才能成功。而且,从3个反斜杠产生一个输出反科杠起,每4个原式中的反斜杠产生一个输出反斜杠。

F:\Backup>echo %temp%|sed "s@.:@\\PPC@g;"
PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\PPC@g;"
\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\PPC@g;"
\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\PPC@g;"
\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\PPC@g;"
\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\PPC@g;"
\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\PPC@g;"
\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\PPC@g;"
\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\PPC@g;"
\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\PPC@g;"
\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\\PPC@g;"
\\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\\\PPC@g;"
\\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\\\\PPC@g;"
\\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\\\\\PPC@g;"
\\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\\\\\\PPC@g;"
\\\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\\\\\\\PPC@g;"
\\\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\\\\\\\\PPC@g;"
\\\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\\\\\\\\\PPC@g;"
\\\\PPC\DOCUME~1\Username\LOCALS~1\Temp

F:\Backup>echo %temp%|sed "s@.:@\\\\\\\\\\\\\\\\\\\PPC@g;"
\\\\\PPC\DOCUME~1\Username\LOCALS~1\Temp
2 发表于 2008-05-28 11:11 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
sed……
没用过……路过……
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
论坛跳转: