Saya memiliki banyak folder di dalam folder. Seperti ini
Root Folder
-- Folder 1
-- Folder 2
-- Folder 3
-- Folder 4
Saya ingin menutup semua folder sehingga semua file di bawah folder1, folder 2, folder 3, ... folder n ada di bawah folder root.
Apa cara tercepat untuk melakukan ini di windows?
Jawaban:
Tidak ada alasan untuk menggunakan alat khusus atau bahkan skrip. Cukup gunakan fungsi pencarian di Explorer.
*
dan tekan Enter.Jika Anda lebih suka memiliki skrip sehingga Anda bisa memulainya dan melupakannya, itu juga bisa dilakukan. Perintah untuk mengganti
mv *\* .
cukup mudah (for /r %f in (*.*) do @move "%~f" .
) tapi saya yakin Anda ingin menangani duplikat, tanpa meninggalkan mereka seperti dalam jawaban @Nicole Hamilton. Menambahkan nomor ke nama file duplikat mungkin adalah cara termudah untuk melakukannya.Salin dan tempel file batch berikut ke dalam Notepad dan simpan sebagai "flatten.cmd" (termasuk tanda kutip):
Untuk menggunakan skrip, cukup seret folder yang ingin Anda ratakan di atasnya.
sumber
Anda dapat meratakan di Windows Explorer dengan menavigasi ke folder yang ingin Anda ratakan dan mencari untuk
System.Kind:<>folder
mengecualikan folder dari hasil.Anda kemudian dapat memilih semua file dengan CTRL + A dan menyalin dan menempelkannya ke folder baru. Perhatikan bahwa Windows Explorer akan menanyakan cara menangani nama file duplikat.
sumber
System.Kind:<>cartella
)Hal semacam ini mudah dilakukan dengan shell Unix. Inilah yang dapat Anda lakukan dengan shell Hamilton C saya sendiri (termasuk versi gratisnya ). Anda dapat melakukan sesuatu yang sangat mirip dengan Cygwin bash.
Jika direktori Anda benar-benar besar, mungkin saja wildcard menjadi terlalu lama baris perintah untuk Windows untuk diteruskan ke proses anak. ( Panggilan Windows CreateProcess membatasi daftar argumen menjadi 32K karakter Unicode.) Tetapi shell C tidak memiliki batas secara internal, sehingga Anda dapat mengulangi seluruh daftar dengan cara ini:
Untuk poin @ MarkAllen di atas, anggapan seperti ini tidak ada nama duplikat. Jika ada, salinan selanjutnya dalam daftar akan menimpa yang lebih lama. Jika itu masalah, Anda bisa beralih pada file,
mv
hanya jika Anda tidak menimpa. The:t
Operator adalah operator yang ekor . The-e
Operator adalah file ada tes .Ini masih meninggalkan direktori kosong, yang mungkin tidak Anda inginkan setelah dikosongkan. Itu bisa menjadi iterasi berikutnya jika itu penting.
sumber
bash
,mv */* .
bekerja untuk saya.