Saya mencari cara untuk menyelesaikan tugas ini. Saya sudah mencoba robocopy dan menulis file batch, tetapi robocopy tampaknya tidak dapat melakukannya (karena / MINAGE tidak dapat melakukan waktu - hanya tanggal), dan menulis file batch untuk melakukan semua ini sedikit melebihi saya karena menjadi agak rumit dan berubah menjadi kode spageti.
1) Seseorang mengunggah file ke folder sumber di server (S-drive).
2) Beberapa workstation memeriksa S-drive secara berkala (setiap 5 menit).
3) Workstation memiliki satu file di folder tujuan. Jika workstation melihat bahwa S-drive memiliki file yang lebih baru dari file di folder tujuan di workstation, workstation hanya menyalin file terbaru dari S-drive ke folder tujuan. Nama file tidak penting di sini - hanya cap waktu yang penting.
Di sisi lain, jika folder tujuan workstation memiliki file dengan stempel waktu yang sama atau lebih baru daripada pada S-drive (bahkan jika itu adalah nama file yang berbeda), itu tidak boleh menyalin file.
4) Workstation menjalankan file batch terpisah untuk mengganti nama dan memproses file baru.
Jawaban:
Untuk menyederhanakan pertanyaan Anda (seperti yang saya mengerti), Anda ingin:
Langkah 1 dan 2 dapat dilakukan dengan for for:
Lebih banyak bantuan tentang itu di sini: Bagaimana cara saya menulis skrip batch Windows untuk menyalin file terbaru dari direktori?
Langkah 3 : Sekarang Anda tahu file terbaru di setiap lokasi. Saatnya membandingkan cap waktu mereka untuk melihat file mana yang lebih baru. Kita dapat menggunakan wmic untuk mengambil stempel waktu untuk setiap file yang dapat dibandingkan dengan operator relasional: misalnya 20150129113038 (yang sama dengan 29 Januari 2015 pukul 11:30:38) lebih besar dari 20150129112533 (29 Jan 2015 di 11:25:33 ).
Gagasan tambahan seputar perbandingan terakhir ini dapat ditemukan di sini: Bagaimana cara membandingkan cap waktu file dalam skrip batch DOS?
Langkah 4 dan 5 : Terakhir, tentukan apakah file terbaru ada di server Source dan salin + ganti nama sesuai kebutuhan.
sumber
Bagaimana dengan file batch berikut
xcopy "\\ Server Sumber \ Jalur Sumber" "c: \ Jalur Tujuan" / C / D / Y
tentu saja tanda "hanya diperlukan jika ada spasi dalam nama.
Ini menggunakan waktu UTC untuk perbandingan. (Waktu Universal Terkoordinasi)
sumber