显然,Windows(或Windows的至少一部分)会忽略路径中的多个反斜杠,并将其视为单个反斜杠。例如,从命令提示符处或“运行”窗口中执行以下任何命令都会打开记事本:
C:\Windows\System32\Notepad.exe
C:\Windows\System32\\Notepad.exe
C:\Windows\System32\\\Notepad.exe
C:\Windows\System32\\\\Notepad.exe
C:\\Windows\\System32\\Notepad.exe
C:\\\Windows\\\System32\\\Notepad.exe
这甚至可以与在命令行上传递的参数一起使用:
notepad "C:\Users\username\Desktop\\\\myfile.txt"
此行为记录在任何地方吗?我试了搜查,只发现这个 SO疑问,甚至提到的行为。
注意:我不是在问UNC路径(\\服务器名),\\?\前缀或\\“双引号转义符。
注意:在使用批处理文件时,我偶然发现了这种现象。批处理文件中的一行看起来像这样:
"%SOME_PATH%\myapp.exe"
变量展开后,命令如下所示:
"C:\Program Files\Vendor\MyApp\\myapp.exe"
令我惊讶的是,该批处理文件按预期执行,并且未因某种“找不到路径”错误而失败。