Los entornos de línea de comandos, como el símbolo del sistema de Windows y PowerShell , utilizan espacios para separar comandos y argumentos, pero los nombres de archivos y directorios también pueden contener espacios. Para especificar una ruta de archivo que tenga un espacio dentro, debe "escaparla".
¿Por qué escapar de los espacios?
“Escape” o escapar de un personaje cambia su significado. Por ejemplo, escapar de un espacio hará que el shell lo trate como un carácter de espacio en lugar de un carácter especial que separa los argumentos de la línea de comando.
Supongamos que tiene un archivo de texto y desea ver el contenido. Puedes hacerlo con el comando tipo. Suponiendo que el archivo de texto se encuentra en C:\Test\File.txt , el siguiente comando en el símbolo del sistema mostrará su contenido:
type C:\Test\File.txt
Ahora, ¿qué pasa si tienes el mismo archivo en C:\Test Folder\Test File.txt ? Si intenta ejecutar el siguiente comando, no funcionará: los espacios en la ruta del archivo se interponen.
type C:\Test Folder\Test File.txt
La línea de comando cree que está intentando buscar un archivo llamado C:\Test y dice " no puede encontrar la ruta especificada " (no puede encontrar la ruta especificada).

La línea de comando no puede encontrar la ruta especificada
3 formas de escapar de los espacios en blanco en Windows
Hay 3 formas diferentes de escapar de las rutas de archivos en Windows:
- Encerrando la ruta (o partes de ella) entre comillas dobles ("").
- Agregando un carácter de intercalación (^) antes de cada espacio. (Esto sólo funciona en el símbolo del sistema/CMD y no parece funcionar con todos los comandos).
- Agregando un carácter de acento (`) antes de cada espacio. (Esto sólo funciona en PowerShell, pero siempre funciona).
Este artículo le guiará sobre cómo utilizar cada método.
Encierre la ruta entre comillas
La forma estándar de garantizar que Windows maneje correctamente la ruta de un archivo es encerrarla entre comillas dobles (""). Por ejemplo, con el comando de ejemplo anterior, el comando se ejecutaría de la siguiente manera:
type "C:\Test Folder\Test File.txt"
De hecho, puedes poner partes de la ruta entre comillas si lo deseas. Por ejemplo, digamos que tiene un archivo llamado File.txt en esa carpeta. Puede ejecutar lo siguiente:
type C:\"Test Folder"\File.txt
Sin embargo, eso no es necesario. En la mayoría de los casos, puede simplemente utilizar comillas en toda la ruta.
Esta solución funciona tanto en el entorno tradicional del símbolo del sistema (CMD) como en Windows PowerShell.
![Cómo escapar de espacios en rutas de archivos en la línea de comando de Windows Cómo escapar de espacios en rutas de archivos en la línea de comando de Windows]()
Encierre la ruta entre comillas
Utilice el carácter de intercalación (^) antes de un espacio.
En el símbolo del sistema, el carácter de intercalación (^) teóricamente le permitirá escapar de los espacios. Simplemente agréguelo antes de cada espacio en el nombre del archivo. (Encontrará este carácter en la fila numérica de su teclado. Para ingresar el carácter de intercalación, presione Mayús + 6 ).
El problema es que aunque esto es efectivo, no siempre funciona. El manejo de este personaje por parte del símbolo del sistema es extraño.
Por ejemplo, con el comando de ejemplo, si ejecuta lo siguiente, el comando no funcionará:
type C:\Test^ Folder\Test^ File.txt
![Cómo escapar de espacios en rutas de archivos en la línea de comando de Windows Cómo escapar de espacios en rutas de archivos en la línea de comando de Windows]()
El comando anterior no funcionará
Por otro lado, si intenta abrir su archivo directamente ingresando su ruta en el símbolo del sistema, puede encontrar que el carácter de intercalación escapará del espacio correctamente:
C:\Test^ Folder\Test^ File.txt
![Cómo escapar de espacios en rutas de archivos en la línea de comando de Windows Cómo escapar de espacios en rutas de archivos en la línea de comando de Windows]()
El carácter de intercalación escapa correctamente de los espacios en blanco.
Entonces, ¿cuándo funciona? Según la investigación, solo parece funcionar con algunas aplicaciones. Las cosas pueden cambiar según el comando que esté utilizando. El manejo de este personaje por parte del símbolo del sistema es extraño. Pruebe con cualquier comando que esté usando, puede que funcione o no.
Para mantener la coherencia, el artículo recomienda utilizar comillas dobles en el símbolo del sistema o cambiar a PowerShell y utilizar el método siguiente.
Utilice caracteres de acento (`)
PowerShell utiliza el carácter de acento (`) como carácter de escape. Simplemente agréguelo antes de cada espacio en el nombre del archivo. (Encontrarás este carácter encima de la tecla Tab y debajo de la tecla Esc en tu teclado).
type C:\Test` Folder\Test` File.txt
Cada carácter acentuado requiere PowerShell para escapar del carácter que le sigue.
Tenga en cuenta que esto sólo funciona en entornos PowerShell. Tendrás que utilizar el carácter de intercalación en el símbolo del sistema.
![Cómo escapar de espacios en rutas de archivos en la línea de comando de Windows Cómo escapar de espacios en rutas de archivos en la línea de comando de Windows]()
Utilice caracteres de acento (`)
Si está familiarizado con sistemas operativos tipo UNIX como Linux y macOS, es posible que esté familiarizado con el uso del carácter de barra invertida (\) antes de un espacio para escapar. Windows usa este carácter para rutas de archivos normales, por lo que no funciona. Los caracteres de intercalación (^) y acento (`) son la versión de Windows de la barra invertida, según el shell de línea de comandos que esté utilizando.
Ver más: