menggunakan baris perintah, saya ingin menyalin satu direktori ke yang lain. Misalnya ada direktori C:/test
dan C:/test2
.
Saya ingin menyalin C:/test
ke dalam C:/test2
sehingga hasilnya akanC:/test2/test
Semua yang saya telah menemukan sejauh ini hanya akan menyalin file dan folder yang terdapat di C:/test
dalam C:/test2
, tapi daun keluar direktori induk.
windows
command-line
Scott Chamberlain
sumber
sumber
Jawaban:
Coba gunakan
XCOPY
dengan/E
sakelar. Info lebih lanjut di sini .Saya belum pernah mengakses informasi ini dari otak saya selama bertahun-tahun !
MEMPERBARUI
Dokumentasi mengatakan bahwa salinan semua file dan subdirektori dari direktori source (yang berarti bahwa direktori induk tidak diciptakan), sehingga Anda akan harus membuat
test
diC:\test2
pertama dan kemudian menggunakanXCOPY
.sumber
robocopy /CREATE /COPYALL /DCOPY:T src dst
untuk hanya menyalin folder dan mengosongkan file tetapi mempertahankan semua cap waktu dan atribut lainnya.test
masih perlu dibuat.md test
dan kemudian menggunakanxcopy
itu sangat jelas.copy
folder tidak membuat folder baru dan kemudian menyalin isi di dalamnya.Ini adalah info tentang XCOPY [ 1 , 2 ]
sumber
Gunakan ROBOCOPY jika Anda membuat skrip cadangan. xcopy telah ditinggalkan dan kemungkinan akan dihapus dari penggunaan dalam waktu dekat. robocopy dapat melakukan semua yang bisa xcopy. Ini juga lebih fleksibel dan dapat diandalkan. Membuat skrip dengan robocopy akan menjadi bukti di masa depan.
Gunakan robocopy untuk menyalin folder dengan mudah. Perintah robocopy menggantikan perintah xcopy. Itu dapat dengan cepat menyalin seluruh folder tanpa harus khawatir tentang menentukan konten. Misalnya, untuk menyalin semua konten direktori C: \ tools ke folder baru D: \ backup \ tools, masukkan yang berikut ini:
Pengubah / e memberitahu robocopy untuk memasukkan semua subdirektori. Ini termasuk folder kosong. robocopy akan secara otomatis menyalin file tersembunyi dan sistem. Ini akan membuat direktori baru jika tidak ada di lokasi target.
Mencerminkan sebuah direktori. Mencerminkan direktori sangat bagus untuk membuat cadangan. Opsi mirror dari robocopy akan menyalin semua konten dari sumber ke tujuan. Kemudian akan menghapus apa pun di tujuan yang tidak ada di sumbernya. Ini memastikan bahwa cadangan Anda hanya memiliki versi terbaru dari file Anda. Misalnya, untuk membuat mirror C: \ Users \ My Documents ke D: \ backup \ My Documents, masukkan yang berikut ini: [4]
Fungsi ini akan mempertahankan semua izin file asli.
Aktifkan memulai kembali. Anda mungkin ingin memasukkan kemampuan untuk memulai kembali proses seandainya koneksi terputus di tengah salinan.
Catat proses penyalinan. robocopy memungkinkan Anda membuat file log. Ini dapat membantu Anda menemukan masalah atau menghasilkan arsip dari apa yang telah disalin.
Pengubah / log + akan menambahkan file log yang sudah ada alih-alih menimpanya. Jika Anda lebih suka menimpa file log yang lama, gunakan /log:.txt.
sumber
Saya merekomendasikan robocopy lebih dari xcopy , karena ia memiliki lebih banyak pilihan, termasuk menjaga cap waktu yang utuh, yang menurut saya penting.
Robocopy perlu ditambahkan pada XP / 2003, tetapi standar dari Vista dan seterusnya.
Sebenarnya saya biasanya menggunakan xxcopy , tetapi versi 64-bit tidak gratis.
sumber
robocopy
adalah program Windows. Pertanyaannya adalah tentang DOS.Misalnya, jika Anda perlu menyalin
E:
dataH:
drive ke drive (hard drive eksternal) melalui baris perintah atau dari lingkungan perintah xboot.sumber
Jika pertanyaan awal adalah apa yang saya cari jawabannya, maka saya, dan jelas tidak ada orang di atas, yang memberikan solusi yang jelas.
Yang saya cari adalah menyalin direktori tes ke direktori test2 tanpa harus mengetiknya lagi. Sesuatu seperti
di mana
d:\test2\test
tidak ada sebelum salinan tetapi setelah. Ini akan menghemat uji salah ketik yang kedua kalinya di jalur tujuan. Perintah di atas akan menyalin semua file dan direktori apa saja ke dalam test2 tetapi tidak akan membuat direktori tes.Sejauh ini
adalah satu-satunya cara yang saya temukan untuk menyelesaikan pekerjaan ini. Sekali lagi jika Anda memiliki masalah pengetikan, tidak ada jaminan bahwa direktori sumber dan tujuan akan cocok.
Alternatif untuk memperbaiki ini adalah
Ini menetapkan direktori tujuan dalam
mydir
variabel kemudian menggunakan variabel itu di kedua jalur sumber dan tujuan. Jika Anda salah mengetik variabel, Anda akan mendapatkan kesalahan atau direktori tujuan mungkin ada%
di awal dan akhir.Ini lebih lama untuk mengetik tetapi lebih sedikit peluang untuk mendapatkan nama yang salah. Mereka akan terlihat.
sumber
xcopy /ievy c:\test d:\test2\test
untuk menjaga struktur pohon direktori, danset mydir=test&xcopy /isvy c:\%mydir% c:\test2\%mydir%
hanya 1 & akan cukup, karena hasil pengaturan nilai selalu berhasil.Di mana
SWITCHES
bisa:Untuk menyalin seluruh struktur direktori:
/hiev
Untuk menimpa file di tujuan (jika folder tujuan sudah ada):
/hievry
Untuk menimpa dan juga menyalin dengan Atribut ACL +:
/hievxok
Paling cocok untuk kasus Anda:
xcopy /hievry C:\test C:\test2\test
sumber
Saya memiliki situasi yang sama di mana saya perlu menyalin sejumlah folder termasuk nama folder ke lokasi tujuan, dan berharap pertanyaan ini ditandai menjawab akan membantu, tetapi sebenarnya tidak.
Pertama, pasti ada saat-saat di mana seseorang membutuhkan kemampuan ini dan saya bertemu ketika saya harus menyalin folder dari C: \ Windows \ Assembly \ GAC_MSIL. Windows Explorer menolak untuk menunjukkan folder ini, jadi Anda harus menggunakan command prompt.
Jika Anda terbiasa dengan folder GAC, Anda akan tahu bahwa nama folder itu tidak mudah dan mudah salah jika Anda salah ketik.
Jadi membuat direktori sebelumnya bukanlah pilihan - kecuali Anda menggunakan skrip - yang akhirnya saya gunakan, karena ini adalah satu-satunya solusi nyata.
Pertama-tama, buang folder yang ingin Anda salin ke file sementara, ini biasanya didasarkan pada beberapa pola misalnya
Kemudian putar entri di dump dan salin ke tujuan. Xcopy akan mengurus pembuatan folder jika Anda mengakhiri argumen tujuan dengan garis miring terbalik (\)
Masukkan kedua perintah ini dalam file batch dan jalankan.
Sekarang jika hanya xcopy atau robocopy yang sudah ada di dalamnya.
sumber
XCOPY SourceDrive: DestinationDrive: / S / E
sumber
/S /E
bendera)Saya telah sampai pada jawaban alternatif fungsional untuk pertanyaan Anda.
Pertama, menggunakan
FORFILES
dengan/S
parameter, menganugerahkan bahwa setiap sub-direktoriC:\test
akan tercapai.Kedua, dengan
/C
parameter, dimungkinkan untuk memulai rantai perintah dengan variabel asli, yang memungkinkan untuk membuat direktori identik di tujuan, dan kemudian menyalin file ke dalamnya, menggunakan dua struktur kondisional.Struktur kondisional pertama
@isdir==TRUE
(pastikan untuk menggunakan huruf kapital), memungkinkan untuk mendapatkan direktori hanya dari sumber, kemudian membuatnya pada takdir denganMKDIR [path]\@relpath
di akhir.Akhirnya, yang kedua memastikan bahwa itu hanya bekerja dengan file
@isdir==FALSE
, dan kemudian perintah COPY menyelesaikan pekerjaan, mendapatkan semua file yang dicapai oleh perintah FORFILES, ditetapkan[path]@relpath
sebagai tujuan, untuk menyalin file ke dalam direktori yang baru saja dibuat.Semoga itu bisa membantu semua orang di sekitar sini.
sumber
Ini akan melakukannya dari GUI, tidak tahu bagaimana mereka melakukannya.
"... program kecil akan memungkinkan Anda untuk memilih" dari direktori "dan" ke dalam direktori ", dan itu akan melanjutkan untuk menyalin HANYA struktur direktori."
http://www.rjlsoftware.com/software/utility/treecopy/
sumber