Powershell: Comparar dos Shares, Ficheros o Carpetas
Hoy os voy a explicar cómo comparar dos Shares, carpetas o ficheros.
La idea es que cuando tienes que hacer una réplica de una carpeta, si el tamaño es muy grande, necesitaréis comparar el origen y el destino, tanto al principio como una vez replicadas.
Os voy a enseñar como hacerlo con un script de Powershell, con robocopy o vía una herramienta gráfica y gratuita.
Comparar carpetas con script de Powershell
Os dejo un script de Powershell para comparar dos shares, carpetas o ficheros. Cambiar el origen y el destino por el vuestro. La idea es dejar log con todos los ficheros, el tamaño de las dos carpetas y la comparativa de lo que ha cambiado:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# RAUL UNZUE - EL BLOG DE NEGU # Hay un límite a tamaño de rutas de 260 caracteres # Se puede modificar en la siguiente clave de registro: # `HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)` # Hay que cambiar el valor de 1 a 0 # REVISAMOS EL ORIGEN $fso = Get-ChildItem -Recurse -path "M:" $fso > c:\Users\elblogdenegu\Desktop\datos-origen.txt # EXTRAEMOS EL TAMAÑO DE LOS FICHEROS ENCONTRADOS $totalSizeo = ($fso | Measure-Object -Sum Length).Sum / 1GB > c:\Users\elblogdenegu\Desktop\tamano-origen.txt # REVISAMOS EL DESTINO $fsd = Get-ChildItem -Recurse -path "N:" $fsd > c:\Users\elblogdenegu\Desktop\datos-destino.txt # EXTRAEMOS EL TAMAÑO DE LOS FICHEROS ENCONTRADOS $totalSized = ($fsd | Measure-Object -Sum Length).Sum / 1GB > c:\Users\elblogdenegu\Desktop\tamano-destino.txt # COMPARAMOS Y EXTRAEMOS EL RESULTADO Compare-Object -ReferenceObject $fso -DifferenceObject $fsd -Property Length,Name -IncludeEqual > c:\Users\elblogdenegu\Desktop\comparativa.txt |
Comparar carpetas con Robocopy
También se puede hacer vía Robocopy, para evitar la limitación de Powershell:
1 2 3 4 |
$origen="\\NAS\carpeta" $destino="\\NAS02\carpeta" ROBOCOPY $origen $destino /e /l /ns /njs /njh /ndl /fp /log:c:\Users\elblogdenegu\Desktop\modificaciones.txt |
Comparar carpetas con WinMerge
Si la parte vía comando no os resulta cómoda, podéis usar WinMerge, que es una APP gratuita que os hace una comparación visual de ficheros y recursos:
Copiar cambios incrementales de dos carpetas
Para terminar os dejo como comprobar los cambios entre dos carpetas:
1 2 |
Copiar: robocopy $origen $destino /E /Z /ZB /TBD /MT:20 /R:3 /W:3 /LOG:.\cambios.log /V /NP /PURGE Revisar: robocopy $origen $destino /E /Z /ZB /TBD /MT:20 /R:3 /W:3 /LOG:.\cambios.log /V /NP /PURGE /L |
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?