Bagaimana Robocopy menentukan apakah suatu file “diubah”?

17

Saya mencari di sini untuk info terperinci tentang bagaimana algoritma Robocopy menentukan apakah suatu file telah berubah atau tidak. Jika saya menggunakan misalnya parameter / mir, Robocopy harus menentukan file mana yang diubah dan mana yang tidak. Apakah ia menggunakan timestamp yang dimodifikasi atau ukuran file, hash kombinasi semua?

Menariknya, ia tidak mengatakan apa-apa tentang itu dalam dokumentasi.

pengguna54512
sumber

Jawaban:

25

Ok setelah menghabiskan hari meneliti ini, membaca dokumentasi, dan menguji sendiri (semua dengan hasil yang sama), saya punya jawabannya.

Jawaban singkatnya adalah: nilai default Robocopy adalah (kecuali Anda menentukan sesuatu yang berbeda melalui parameter) bahwa itu akan menyalin file mana pun di mana Stempel Waktu ATAU ukuran file berbeda . Ingat Robocopy SELALU menyalin dari Sumber ke Tujuan. Jadi, jika Anda memiliki file yang lebih baru DAN lebih besar di tujuan, Robocopy akan menimpanya dengan file yang lebih lama dan lebih kecil dari sumber (itu sebabnya saya menekankan kata "berbeda" - itu bukan lebih baru atau lebih besar , hanya berbeda).

Pada level yang lebih dalam, Anda dapat mengecek dengan opsi / it walaupun atribut file berbeda dan menyalinnya juga berbeda - walaupun filesize dan Timestamp sama (OK, untuk 100%, saya tidak tahu apakah itu akan menyalin file atau hanya atribut yang hilang, tetapi karena file tersebut identik, hasilnya akan sama).

Saya menemukan dokumentasi panjang yang dikutip di utas lainnya - ini tentang versi XP010 (saya kira itu Windows XP). Tetapi tidak ada dokumentasi baru untuk robocopy. Anda dapat menemukan dokumentasinya di sini:

http://theether.net/download/Microsoft/Utilities/robocopy.pdf (Baca bagian "Menggunakan Kelas File Robocopy", semuanya ditata dengan sangat tepat di sana)

Dokumentasi ini tentang Robocopy versi lama (Di bawah Win7 Anda biasanya memiliki Versi XP027) - tetapi Anda dapat memeriksa perubahan versi di situs ini - yang memiliki ikhtisar yang sangat rapi:

http://yarcgui.wilkes.es/De/RoboCopy/index.htm

Intinya adalah bahwa tidak ada banyak perbedaan antara bahkan XP dan Win7 - hanya yang kecil dan perubahannya adalah untuk menambahkan parameter - tidak untuk mengubahnya (dengan pengecualian parameter / mir). Dan saya pikir aman untuk mengatakan mekanisme perbandingan tidak akan berubah - karena ini akan menjadi hal yang sangat besar dibandingkan dengan perubahan yang sangat kecil untuk menambahkan beberapa parameter lagi.

Ini mungkin alasan mengapa tidak ada dokumentasi baru.

Semoga itu bisa membantu jika Anda mencari info yang sama dan membaca ini. Saya berusaha lebih tepat dan melakukan penelitian dengan hati-hati.

pengguna54512
sumber
2
Apakah menggunakan cap waktu yang dibuat, diubah, atau keduanya?
user643011
@ user54512 Saya tidak mengerti sama sekali .. jadi apakah itu menggunakan cap waktu atau hash?
Shayan
1
@shayan: tertulis di sana, jika Timestamp ATAU Filesize berbeda, ia akan menyalin dari sumber ke tujuan. Tidak ada hash. Istirahat ada di dokumentasi saya taruh di tautan.
user54512