Robocopy tidak menyalin folder root dan stempel waktunya - ia menyalin semua subdirektori dan file (ketika opsi yang sesuai ditetapkan) dan tampaknya tidak ada pilihan / argumen untuk memberi tahu Robocopy Anda ingin folder root itu sendiri dan cap waktu atau atributnya untuk disalin kata demi kata juga.
Jadi katakan saya ingin saya salin C: / Brushes
Robocopy akan menyalin semua subdirektori dan file ke tujuan, tetapi bukan folder Brushes itu sendiri, dengan semua atribut terkait dan cap waktu.
Anda mengerti apa yang saya minta? Ini cukup mendasar dan Robocopy tampaknya tidak memiliki pilihan untuk itu. Orang-orang telah mengajukan pertanyaan sebelumnya di berbagai forum tetapi sejauh yang saya ketahui, tidak ada yang menjawab pertanyaan itu.
rsync
, tetapi bagaimana jika Anda tidak memiliki garis miring di akhir folder target Anda? Bagaimana dengan mencoba memodifikasi skrip pada level baris perintah alih-alih menggunakan GUI? Saya tahu pasti bahwa alat baris perintah akan melakukan apa yang Anda butuhkan.Jawaban:
Letakkan folder di atas
bat
atau gunakan di Kirim Ke . Ini akan membuat folder dengan cap nama & waktu dari direktori sumber dan menyalin semua file.sumber
%~n1
?Saya setuju dengan OP, tidak bisa menyalin folder root adalah kekurangan besar robocopy. Bagaimana dengan menyontek dan memindahkan folder kuas ke folder sementara, melakukan operasi robocopy pada folder sementara, lalu memindahkannya kembali?
Sesuatu seperti:
sumber
Coba
md D:\Backup\Brushes && robocopy C:\brushes D:\Backup\Brushes
dari baris perintah, gantikan jalur yang benar.sumber
Seperti yang saya lihat tidak ada solusi yang baik dan mudah di salah satu jawaban:
Jika tidak ada solusi untuk robocopy, Anda dapat melihat xxcopy (ada versi freeware dan komersial).
Tentu saja ada banyak alternatif lain selain robocopy, ada juga yang terdaftar di sini .
Lihat juga Utilitas Salin File Gratis Terbaik .
sumber
xxcopy
adalah utilitas yang bagus, tetapi versi freeware memiliki prompt yang harus Anda tanggapi jika Anda menggunakan salah satu dari daftar besar saklar baris perintah. Menggunakanxxcopy
dari jendela perintah, prompt tambahan ini menjengkelkan. Tapi itu mencegah (menyulitkan) penggunaan darixxcopy
file batch sama sekali.Jawaban user105198 adalah setengah jalan,
D:\Backup\Brushes && robocopy C:\brushes D:\Backup\Brushes
memang akan hanya membuat folder baru. Anda harus menambahkan / MIR dan / DCOPY: T untuk itudigabungkan bersama, berarti: atribut direktori waktu dan cap waktu akan dicerminkan ke folder yang dibuat.
begitu:
sumber
Saya pikir Anda akan menemukan bahwa Robocopy melakukan apa yang Anda inginkan, asalkan Anda menyuruhnya menyalin cap waktu folder (/ DCOPY: T). Dari eksperimen saya, saya menemukan perilaku (tampaknya tidak berdokumen) berikut ini berlaku untuk Robocopy:
Properti yang ditentukan dapat mencakup (setidaknya) informasi keamanan (/ SEC) atau cap waktu folder (/ DCOPY: T).
Oleh karena itu, dalam contoh berikut, folder c: \ destination \ akan diberi cap waktu yang sama dengan folder c: \ source \.
Saya menguji ini dengan versi Robocopy yang disertakan dengan Windows 7, Windows 8, dan Windows 2003 Resource Kit (/ parameter SEC saja). Perhatikan bahwa hanya versi Robocopy yang lebih baru (XP026 dan lebih tinggi) yang mendukung parameter / DCOPY: T.
sumber
Jika Anda bergabung
/IF :: Include the following Files.
dengan/E :: copy subdirectories, including Empty ones.
Anda mendapatkan (dekat dengan) efek yang diinginkan:sumber
Robocopy sebenarnya tidak dirancang untuk melakukannya dengan mudah. Namun, ada caranya.
Root folder berisi katakanlah 50 file dan 40 folder. Anda hanya ingin folder X (tetapi Anda juga ingin cap waktu dan tanggal).
The / DCOPY: T memberitahukannya untuk menjaga waktu stempel folder. / XF menentukan file yang TIDAK untuk disalin, / XD menentukan folder mana yang TIDAK untuk disalin. Hanya saja, jangan tentukan folder c: \ X.
Kelemahan utama dari ini adalah meneliti semua folder dan nama file di root dan secara khusus memanggil mereka semua di sini. Jika Anda sering melakukan ini pada sistem yang berbeda, skrip dapat ditulis.
Contoh Kerja
robocopy c: \ testing c: \ abc / XF c: \ testing \ Testing.txt / XD "C: \ testing \ Folder Baru (2)" "C: \ testing \ Folder Baru (3)" / S / E / SEC / DCOPY: T
Contoh Pekerjaan Rooting
robocopy c: \ d: \ / XF c: \ Testing.txt / XD "C: \ Folder Baru (2)" "C: \ Folder Baru (3)" / S / E / SEC / DCOPY: T
Pengujian saya berhasil, saya membuat beberapa folder dan sub folder, c: \ testing adalah root dalam kasus ini, c: \ abc adalah root dari drive lain (jelas mereka tidak benar-benar, tetapi untuk tujuan ini seharusnya masuk akal). Folder yang saya inginkan dari root disebut "Folder Baru", seperti yang Anda lihat saya tidak menentukannya di / XD. Juga, pastikan Anda menentukan c: \ atau nama yang Anda gunakan akan mendunia. Dengan kata lain jika saya tidak menentukan c: \ testing dari file Testing.txt, itu akan menghilangkannya dari SEMUA subfolder yang disalin. / SEC akan menyalin semua keamanan file dan stempel waktu.
sumber
Secara teori, menggunakan
/DCOPY:T
harus menyelesaikan semua masalah Anda.Tapi, saya sudah melihat ini terjadi, dan saya tidak yakin saya akan menyebutnya "bug", tetapi lebih merupakan konsekuensi dari urutan operasi (OK, bug).
Perintah ini harus berfungsi untuk menyalin semua file dari
C:\Brushes
keD:\NEWBrushes
, dan/DCOPY:T
menyebabkan cap waktu dari folder sumber disalin ke folder tujuan:Apa yang saya lihat (setidaknya pada beberapa versi Robocopy) adalah bahwa perintah berhasil, tetapi cap waktu
D:\NEWBrushes
folder diatur ke tanggal dan waktu saat ini.Jadi sepertinya
/DCOPY:T
fitur tersebut tidak berfungsi untuk folder "basis" (paling atas) yang Anda salin.Saya percaya ini berfungsi, tetapi stempel waktu dari folder tujuan sedang "diinjak" oleh operasi yang kemudian dalam urutan operasi.
Apa yang saya yakini sedang terjadi untuk perintah ini:
adalah sesuatu seperti ini:
D:\NEWBrushes
jika belum adaC:\Brushes
keD:\NEWBrushes
C:\Brushes
keD:\NEWBrushes
Tampaknya Langkah 3, modifikasi isi folder
D:\NEWBrushes
menyebabkan stempel waktuD:\NEWBrushes
berubah.Bagi saya, "solusi" adalah menjalankan
robocopy
perintah untuk menyalin file dan folder, kemudian jalankan perintah (yang sama)robocopy
untuk kedua kalinya.Jadi, pertama kali Anda menjalankan:
semua file dan folder akan disalin. Kemudian jalankan lagi:
Kali kedua
robocopy
berjalan, tidak ada file atau folder di dalamD:\NEWBrushes
akan diubah, dan/DCOPY:T
opsi akan memberitahurobocopy
untuk menyalin cap waktu dariC:\Brushes
keD:\NEWBrushes
(kecuali ada folder / file diC:\Brushes
yang telah berubah sejak menjalankan pertama kalirobocopy
).sumber
Saya sedang memecahkan folder root sekarang untuk satu skrip cadangan sangat cepat dan mudah dengan robocopy, ada contoh. Harus membantu siapa pun:
sumber