¿Por qué el shell cmd.exe en Windows falla con las rutas que usan un separador de ruta con barra diagonal ('/' ')?

Justo cuando pensé que lo había visto todo con problemas de ruta de Windows, ahora he encontrado un caso que solo falla cuando se usa '/' (barra diagonal) como el separador de ruta:

<code>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.
</code>

Lo que es particularmente interesante acerca de esto es que parece ser específico para el shell cmd.exe y no ocurre en PowerShell (ni probablemente en la API de win32):

<code>PS C:\temp\tcbugs> type 'dir1 with spaces/foo.txt'
hi
</code>

Otro punto de interés es que cambiar directorios con 'cd' y usar '/' utilizado como separador de ruta con cmd.exe funciona:

<code>C:\temp\tcbugs>mkdir dir2_no_spaces

C:\temp\tcbugs>cd ./dir2_no_spaces

C:\temp\tcbugs\dir2_no_spaces>cd ..
</code>

Sin embargo, no puedo encontrar ninguna referencia a este problema en particular en ningún lugar en línea ni en la documentación comúnmente citada de MSDN:

Nombrar archivos, rutas, espacios de nombres

Lo que me lleva a preguntar: ¿por qué sucede esto y hay una fuente definitiva que documente esta peculiaridad?

ACTUALIZAR:

dbenham señala que el problema está presente independientemente de si los espacios están en el nombre de un directorio, por lo que se eliminó la referencia en el título y el cuerpo de la pregunta. También se agregó un ejemplo de 'cd ./' que funciona, mientras que otros comandos no lo hacen.

Respuestas a la pregunta(3)

Su respuesta a la pregunta