Board logo

标题: [讨论]关于反斜杠转义的层层剥离 [打印本页]

作者: pooronce     时间: 2008-5-28 11:05    标题: [讨论]关于反斜杠转义的层层剥离

经过试验,作出两点猜测,各位一起求证求证:
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

作者: slore     时间: 2008-5-28 11:11
sed……
没用过……路过……