Cómo copiar archivos y carpetas con nombres largos en Windows

En Windows, no podemos copiar directorios y/o archivos cuya ruta completa es larga, por lo general, más de 254 caracteres.

En esta situación, se puede utilizar el comando robocopy. El mismo viene preinstalado en Windows 7, y se puede instalar en versiones previas.

robocopy <ORIGEN> <DESTINO> [<OPCIONES>]

Algunas opciones interesantes:

  • /S : copia los subdirectorios, sin los vacíos
  • /E : copia los subdirectorios, incluyendo los vacíos
  • /COPYALL : copia toda la información del archivo
  • /MOV : mueve los archivos (los borra el origen luego de copiarlos)

Ejemplo: si tenemos la siguiente estructura

  • c:\
    • dir_origen\
      • ruta_con_mas_de_255_caracteres\
        • archivo.txt

e intentamos copiar el contenido de dir_origen a dir_destino, el sistema no lo permitirá.

Para lograrlo debemos ingresar desde la línea de comandos:

robocopy c:\dir_origen c:\dir_destino /S

Pueden ver más ejemplos de uso de robocopy

Anuncios

Guardar en un archivo la salida de la ejecución de un comando o script

Para trabajar con la salida de un comando (o script) desde un editor de textos, o dejar un registro de la misma (log) podemos hacer los siguiente desde la línea de comandos:

comando > archivo.txt

lo cual crea el archivo.txt en el directorio actual, cuyo contenido es la salida del comando. Si el archivo ya existiera, su contenido es reemplazado!

Si en realidad queremos que la salida del comando se agregue al contenido existente en un archivo lo hacemos así:

comando >> archivo.txt

 

El comando o script puede invocarse con parámetros y en lugar de simplemente indicar un archivo, se puede indicar una ruta completa.

Ej en Windows:

mysqldump -u user -p database > data_dump.sql

Ej en Linux:

./check_status.pl -v >> /var/log/status.log