Copiar, clonar o sincronizar una carpeta con ROBOCOPY de Windows 10

ROBOCOPY es un comando de consola de Windows 10 con las funciones del comando COPY pero con opciones más avanzadas. ROBOCOPY tiene funciones parecida al comando rsync de los ambientes Linux con el cual podemos sincronizar dos carpetas o los contenidos completos de dos discos duros.

¿Que ventajas tiene el ROBOCOPY sobre el COPY? Muchas. ROBOCOPY es más robusto y permite especificar más opciones de copiado. Entre otras opciones, le podemos indicar que en caso de estar copiando a una carpeta compartida en red y si llegara haber algún fallo ésta (por ejemplo un error de comunicación, o que se caiga por momentos la red de datos), no suspenda el copiado, si no que reintente varias veces antes de abortar el copiado de ese archivo. También le podemos indicar que conserve las fechas originales de los archivos y carpetas copiados.

A ROBOCOPY también se le puede pedir que sincronice dos carpetas, es decir,  que mantenga idénticas las carpetas en cuanto a contenido. Si un archivo es borrado en la carpeta origen, al hacer el copiado, el mismo archivo sea borrado en la carpeta destino.

Aquí podemos ver más opciones de copiado que permite el comando. Para copiar dos carpetas, en lo personal, he utilizado esta forma:

En el comando anterior le estoy indicando que copie el recurso compartido Carpeta que se encuentra en el servidor 192.168.0.1 a el recurso compartido del mismo nombre pero que se encuentra en el servidor 192.168.0.82. El parámetro u opción /MIR le indica que sincronice las carpetas, si el destino ya tuviera una copia anterior y se han borrado archivos en el origen, elimine dichos archivos del destino y si hay archivos modificados recientemente en el origen, los actualice en el destino. En pocas palabras,  que el destino sea copia exacta del origen.

Con la opción /COPY:DT le indicamos que copie de los archivos tanto los datos (contenido) como las marcas de tiempo (fechas de creación y modificación). Por defecto, si no especificamos esta opción ROBOCOPY intenta copiar además los atributos del archivo, pero al copiar entre dispositivos NAS, no siempre es posible y la copia de los archivos marcará el error de acceso denegado.

ROBOCOPY muestra, por defecto, el porcentaje de avance de cada archivo o carpeta que copia y el número de ellos, la opción /NP evita que esto sea mostrado.

Por último, la opción /log: especifica que en lugar de enviar los registros o mensajes a pantalla, lo haga al archivo que se le indica en dicha opción, en este caso, enviara los mensajes al archivo C:\temp\CopiaCarpeta.log. Si el archivo ya existe, lo sobrescribe. Al final de este archivo se mostrará un resumen de el total de archivos y carpetas copiadas y el número de errores de copiado de cada uno si es que los hubo.

Cabe señalar que por defecto el número de reintentos en caso de fallo al copiar un archivo o directorio es de un millón de veces. Si se desea se puede indicar el número máximo de reintentos con la opción /r: seguido por el número deseado.

¡Hasta pronto!

 

 

Obtener las líneas que contengan direcciones ip de archivos de texto o salida de algún comando en Windows

A veces es necesario extraer de archivos de de texto, como archivos .log de algunos sistemas, las líneas que contengan direcciones IP, ya sea para análisis u otro motivo.

El linux existen herramientas o comandos como grep que permiten hacer esto, en Windows está el comando findstr, que aunque no tan poderoso como el grep, permite hacer lo que estamos buscando.

El comando findstr se debe ejecutar desde una consola o ventana de comandos de Windows, aunque es posible también incluirlo en archivos .bat (procesamiento por lotes) si así se requiere.

En el ejemplo siguiente obtendremos las lineas de salida del comando ipconfig que contengan direcciones IP. Ipconfig es el comando de Windows que nos permite ver la configuración de los adaptadores de red de nuestro equipo Windows. La imagen siguiente muestra los resultados de ejecutar el comanda ipconfig:

Ahora, vamos a obtener, de ese resultado, sólo las lineas que contienen una dirección IP con ayuda del comando findstr. Para eso ejecutaríamos el comando:

Lo que nos daría el siguiente resultado:

Como podemos ver en la imagen, el comando findstr muestra sólo las lineas de salida del comando ipconfig que contienen una dirección IP, el resto de las lineas son ignoradas.

Para obtener las lineas con IPs de un archivo de texto llamado archivo.log, la sintaxis del comando sería:

Para más información y usos del comando findstr pueden visitar la página del comando.

¡Hasta luego!

Borrar archivos viejos o antiguos en Windows desde linea de comando

Aunque esto lo podríamos hacer desde el el explorador de archivo de windows, ordenando los archivos por fecha y seleccionando los que cumplan la condición requerida de antigüedad, existe una forma más práctica de hacerlo usando el comando FORFILES desde la linea de comandos (CMD) del mismo windows. Este comando puede ser usado interactivamente o en un archivo de procesamiento por lotes (batch).

Por ejemplo en el siguiente uso del comando FORFILES:

Indica buscar en la carpeta C:\Documentos (/p “C:\Documentos”) y todas las carpetas contenidas en ella (/s), recursivamente,  aquellos archivos con la extensión .doc (/m *.doc) de 30 días o más de antigüedad (/d -30) y borrar dichos archivos con el comando del (/c “cmd /c del @path”).

También se le puede indicar la fecha exacta de antigüedad:

En este caso borrará los archivos igual o anterior a la fecha del primero de enero del 2017 (/d -01/01/2017), el formato de la fecha como puedes observar es dd/mm/aaaa (día/mes/año).

Más información y usos de este comando lo pueden encontrar aquí.

¡Espero les sirva!

¡No olviden visitar a los patrocinadores!

 

 

Listar las carpetas compartidas de un disco en red (NAS) en Windows.

Para listar, desde linea de comando, todas las carpetas que está compartiendo un disco en red (NAS) se usa el siguiente comando MS-DOS:

net view \\[disco_nas]

Donde [disco_nas] puede ser el nombre o dirección IP del disco NAS.

Por ejemplo, para listar todal las carpetas qu ecomparte un disco en red que tiene la dirección IP 192.168.0.100, la sintaxis del comando seria:

 net view \\192.168.0.100

El mismo comando serviría para listar las carpetas que comparte otra computadora o servidor en red.

¡Saludos!

Consultar el hardware de nuestra computadora windows desde línea de comando.

Hola a todos, devuelta escribiendo una nueva entrada en el blog y compartiendo conocimiento con ustedes. Muy feliz año a todos mis lectores.

Pues bien, queriendo actualizar el hardware de mi computadora Windows (tengo tiempo usando linux), me pregunté si había alguna forma de consultar los dispositivos hardware (cantidad y modelo de la memoria ram, fabricante tarjeta de video, versión de bios,  tipo de cpu, etc) desde una consola de comando de Windows; y resulta que si la hay: el comando wmic.

Así que aquí les dejo este pequeño videotutorial (mis primeros “pininos” en la creación de videotutoriales, espero ir mejorando poco a poco) del uso de este comando windows, específicamente veremos como obtener las propiedades de la ram, cpu, tarjeta madre y bios de nuestra máquina Windows:

Espero y les guste. ¡Hasta luego!

Enviar Ctrl-Alt-Supr o Ctrl-Alt-Del a través de Conexión a Escritorio Remoto de Windows

Inicias sesión en un servidor Windows remoto a través de la aplicación “Conexión a Escritorio remoto” de Windows y quiero cambiar la contraseña de mi usuario actualmente en sesión en el servidor. Para que aparezca la opción de cambio de contraseña es necesario enviar la combinación de teclas Ctrl-Alt-Del Ctrl-Alt-Supr, pero si lo tecleo, aparece el diálogo de la máquina desde la que estoy haciendo la conexión, no en el servidor remoto.

Selección_483

Para poder hacer que aparezca, en el servidor Windows remoto, el diálogo de cambio de contraseña, se envía la combinación Ctrl-Alt-End o Ctrl-Alt-Fin en lugar de la combinación de teclas normal.

Espero haber ayudado. ¡Hasta pronto! ¡No olvides visitar a los patrocinadores!

Excel y Word no quiere abrir documentos en una unidad de red

Sucedió en la oficina, de pronto el Excel y Word empezaron a mandar errores al querer abrir documentos que se encontraban en una unidad de red. Los mensajes eran algo parecido a esto:

“Microsoft Excel no puede abrir o guardar más documentos porque no hay memoria o espacio en disco suficiente.
Para aumentar el espacio de memoria cierre los libros de trabajo o los programas que no necesite.
Para aumentar el espacio en el disco, supriman los ficheros que no necesiten.”

Si se copiaban y abrían en el disco local esos mismos documentos el error desaparecía.

Si les sucede esto es muy probable que el servicio del cortafuegos (firewall) de windows esté deshabilitado. Revise en el administrador de servicios si está habilitado, si no, habilítelo.

Captura

Algunos antivirus deshabilitan el servicio cuando son instalados porque dichos antivirus traen su propio firewall. Si se desactiva el firewall del antivirus, asegúrese de habilitar nuevamente el firewall de windows.

¡Saludos!

Borrar directorios .svn recursivamente de un proyecto en windows 7.

Tenía un proyecto java en Netbeans que estaba configurado para sincronizarse con un repositorio de subversion, sin embargo el repositorio con el cual se sincronizaba ya no existía. Dicho código tenía elementos nuevos y modificados qu eno se habían sincronizado aún, por lo que aplica rel comando export de subversion no funcionaba, ya que sólo copiaba lo sincronizado, no lo nuevo.

Lo recomendable, para eliminar el subversion, era borrar cada un de los directorios ocultos .svn en cada uno de los directorios del proyecto. Hacerlo a a pie, era tardarme un buen tiempo.

Me encontré por aquí este código:

Basta con copiar el código en un archivo y guardar éste con la extensión .CMD y podrá ser ejecutado desde el explorador de archivos de windows.

El archivo debe ser colocado en el directorio raíz del proyecto que estaba versionado (*** Mucho cuidado ya que borra recursivamente ***). De doble click sobre el archivo crado y todos los directorios .svn desde el directorio actual y directorios contenidos serán borrados.

Espero les sea útil.

¡Saludos!

Como concatenar varios archivos texto en windows

A veces nos surge la necesidad de concatenar o juntar en un sólo archivo varios archivos de texto que se encuentran en un directorio o carpeta. Lo que hacemos comúnmente es abrir un archivo, copiar todo el texto y pegar en otro archivo nuevo, y así con el resto de los archivos. ¿Se imaginan con más de 20 o 30 archivos?

¿La solución? Hacerlo por medio de comandos desde la consola de comandos de windows.

Podemos acceder a la consola de windows ya sea por el menú de inicio -> accesorios. O ejecutando la sentencia CMD desde el menú ejecutar.

Una vez abierta navegamos a la carpeta donde se encuentran los archivos a concatenar y ahí ejecutamos la siguiente sentencia o comando:

for %a in (*.txt) do type “%a” >> archivosalida.sal

En el ejemplo anterior, se están copiando y concatenando al archivo  de texto “archivosalida.sal” todos los archivos de texto que terminen o con extensión “.txt” (*.txt).

Espero y les sea útil. ¡Saludos!

Servicio de Postgresql 9.x no inicia. Error 193: 0xc1.

El servicio de postgresql 9.x no arranca en windows y envía el siguiente error:

Error 193: 0xc1.

Este problema, lo puede provocar un archivo llamado “program” en su directorio raíz. Busque si existe dicho archivo. Si es así borre el archivo pero tenga cuidado, debe ser un archivo, no una carpeta (no vaya a borrar la carpeta “Program Files”).

Una vez borrado, intente arrancar nuevamente el servicio de postgresql, éste deberá arrancar.

¡Saludos!