По-видимому, Windows (или, по крайней мере, некоторая часть Windows) игнорирует несколько обратных косых черт в пути и рассматривает их как одну обратную косую черту. Например, выполнение любого из этих команд из командной строки или в окне Run открывает Блокнот:Документированное поведение для нескольких обратных косых черт в путях 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"
Является ли это поведение документально в любом месте? Я попробовал несколько поисков, и нашел только this Вопрос, который даже упоминает поведение.
Примечание:. Я не спрашиваю о путях UNC (\\ ServerName), на \\ \ префикс, или \\»двойные кавычки побег
Примечание: Я наткнулся на это поведение при работе с . пакетный файл, одна строка в пакетном файле выглядела примерно так:
"%SOME_PATH%\myapp.exe"
После расширения переменной, команда выглядела так:
"C:\Program Files\Vendor\MyApp\\myapp.exe"
к моему удивлению, пакетный файл, запускаемый как желание d и не сбой с какой-то ошибкой «путь не найден».
Microsoft, как и большинство других поставщиков программного обеспечения, никогда не документирует свои «неправильные, но я все равно соглашусь». Документирование это узаконивает, делая это неправильно. –