Как раз тогда, когда я думал, что видел все это с проблемами пути Windows, теперь я столкнулся со случаем, который терпит неудачу только тогда, когда используется '/' (прямой -косая черта )в качестве разделителя пути.:
C:\temp\tcbugs>mkdir "dir1 with spaces"
C:\temp\tcbugs>echo hi > "dir1 with spaces"\foo.txt
C:\temp\tcbugs>type "dir1 with spaces\foo.txt"
hi
C:\temp\tcbugs>type "dir1 with spaces/foo.txt"
The system cannot find the file specified.
Что особенно интересно, так это то, что это относится к оболочке cmd.exe и не встречается ни в PowerShell (, ни, предположительно, в win32 API ):
PS C:\temp\tcbugs> type 'dir1 with spaces/foo.txt'
hi
. Еще один интересный момент заключается в том, что смена каталогов с помощью «cd» и использование «/» в качестве разделителя пути с cmd.exe действительно работает:
C:\temp\tcbugs>mkdir dir2_no_spaces
C:\temp\tcbugs>cd./dir2_no_spaces
C:\temp\tcbugs\dir2_no_spaces>cd..
Тем не менее, я не могу найти никаких упоминаний об этой конкретной проблеме ни в Интернете, ни в часто цитируемой документации MSDN :
. Именование файлов, путей, пространств имен
Это заставляет меня спросить :, почему это происходит,и есть ли окончательный источник, который документирует эту причуду?
ОБНОВЛЕНИЕ:
dbenham указывает, что проблема присутствует независимо от того, есть ли пробелы в имени каталога, поэтому убрал ссылку на него в заголовке и тексте вопроса. Также добавлен пример «cd./», который работает, а другие команды — нет.