Verificar la copia de archivo en PowerShell
-
21-09-2019 - |
Pregunta
¿Hay una manera fácil de verificar todos los archivos se han copiado correctamente cuando se llama a la copia material? Pensé en usar la suma de comprobación en todos los archivos, pero me imagino PowerShell (v2) ya habría algo, y yo no lo encuentro.
Solución
No, no hay y aquí es por qué. Copy-Item es un cmdlet genérico que funciona para todos los proveedores de espacio de nombres. Por lo que los artículos que son copiadas podrían ser archivos, o la configuración del registro, o secciones de configuración de IIS, etc. Verificación de una copia de archivo es un poco diferente a la verificación de una copia de la configuración del registro.
ACTUALIZACIÓN: Como ha señalado @Dave_S interruptor de verificación del comando XCOPY no es el tipo de verificación que busca.
Si va a copiar los archivos de texto se puede utilizar el comando de Windows PowerShell Compare-Object
.
Si va a copiar los archivos binarios que podría utilizar el comando fc.exe
sistema con / b interruptor.
Otros consejos
Sé que es un viejo hilo, pero yo pensé que había puesto esto en caso de que nadie más lo está leyendo ... el modificador / v no verificar los datos! Sólo se asegura de que la copia sea legible. Ver http://support.microsoft.com/kb/126457 para más detalles.
Mi solución favorita actual es xcopy en combinación con una auditoría hashdeep. Pueden agruparse en una pequeña BAT-archivo.
Apenas una actualización, Powershell v4 incluye Get-FileHash
que puede ser utilizado para verificar un archivo fue copiado con éxito. Si el hash es el mismo, el archivo se ha copiado correctamente. Enlace Biblioteca TechNet .
utilizo esta respuesta para llegar a la siguiente.
(Get-ChildItem -file -path c:\files -Recurse).FullName | foreach {get-filehash $_ -Algorithm md5}
también puede ser introducido en la exportación-CSV para comparar visualmente con facilidad los hash de archivo.