Buscar

Windows: Listar rutas largas

En posts anteriores hablamos del problema de las rutas largas en sistemas Windows.

En este post, vimos como borrar rutas largas utilizando la herramienta robocopy:

Windows: Borrar rutas largas (SYSADMIT.com)

También vimos como una GPO introducida en Windows Server 2016 y Windows 10, podría solucionar el problema:

"Ruta demasiado larga": Solución con GPO (SYSADMIT.com)

En este post, veremos cómo listar rutas largas.

Para ello, basta con:

- Abrir una ventana de PowerShell como administrador.

- Situarse en el directorio a partir del cual queremos obtener el listado de con rutas largas. Podemos ejecutar el comando cd para situarnos.

- Ejecutar el siguiente comando:

cmd /c dir /s /b |? {$_.length -gt 260}

o bien este, si queremos realizar la búsqueda también incluyendo ficheros ocultos:

cmd /c dir /s /a /b |? {$_.length -gt 260}

También podemos especificar directamente una ruta a partir de la cual, se empieza a realizar la búsqueda, por ejemplo:

Empezamos a buscar a partir del directorio D:\SYSADMIT de forma recursiva:

cmd /c dir /s /a /b D:\SYSADMIT |? {$_.length -gt 260} 

¿Cómo funciona el comando?

El comando es una combinación de un dir de cmd y un filtro de PowerShell.

Desde PowerShell, se llama a un CMD y se realiza una búsqueda de ficheros utilizando DIR.

Al comando DIR, se le pasan los siguientes parámetros:

/s: Recursividad, se incluyen subdirectorios.


/a: Muestra ficheros ocultos y de sistema.


/b: Formato simple, solo se muestra la ruta completa, no se muestra fecha, hora, tamaño

La salida del comando se le pasa una pipe (tubería) y se filtra el texto utilizando: {$_.length -gt 260}

El filtro {$_.length -gt 260} es de PowerShell y solo mostrará las rutas de mas de 260 caracteres.


Vista ventana de PowerShell:

Windows: Listar rutas largas

2 comentarios:

  1. No me reconoce |? , el pipe interrogración.

    ResponderEliminar
    Respuestas
    1. Hola,

      Revisa que lo estés ejecutando desde una ventana de PowerShell.

      Un saludo,

      Xavi.

      Eliminar