Verificare copia di file in PowerShell
-
21-09-2019 - |
Domanda
C'è un modo semplice per verificare tutti i file sono stati copiati correttamente quando si chiama copia-articolo? Ho pensato di usare il checksum di tutti i file, ma immagino PowerShell (v2) sarebbe già qualcosa, e io non riesco a trovarlo.
Soluzione
No non c'è ed ecco perché. Copy-Item è un cmdlet generico che funziona per tutti i fornitori di namespace. Così gli articoli che sono copiati potrebbero essere file o impostazioni di registro, o sezioni di configurazione di IIS, ecc Verifica di una copia del file è un po 'diverso rispetto a verifica di una copia delle impostazioni di registro.
UPDATE: Come sottolineato da @Dave_S interruttore di taratura del comando XCOPY non è il tipo di verifica che si sta cercando.
Se si copiano i file di testo è possibile utilizzare il commandlet PowerShell Compare-Object
.
Se si copiano i file binari è possibile utilizzare il comando di sistema fc.exe
con / b interruttore.
Altri suggerimenti
Lo so che è un vecchio thread, ma ho pensato di postare questo solo nel caso in cui nessun altro è la lettura che ... l'opzione / v non verificare i dati! Si fa solo in modo che la copia è leggibile. per ulteriori informazioni, vedere http://support.microsoft.com/kb/126457 .
La mia soluzione preferita corrente è xcopy in combinazione con una verifica hashdeep. Può essere imballato insieme in una piccola BAT-file.
Solo un aggiornamento, PowerShell v4 include Get-FileHash
che può essere utilizzato per verificare un file è stato copiato correttamente. Se l'hash è lo stesso, il file è stato copiato correttamente. Link a Libreria TechNet .
questa risposta a venire con la in seguito.
(Get-ChildItem -file -path c:\files -Recurse).FullName | foreach {get-filehash $_ -Algorithm md5}
Inoltre può essere convogliata in Export-CSV facilmente visivamente confrontare gli hash dei file.