Gabungkan folder yang hanya berisi satu folder

1

Saya memiliki struktur direktori yang terlihat seperti ini:

(root) – Folder1  – Folder2  – file3
                             – file4
                             – file5
                                 ︙
       – Folder11 – Folder12 – file13
                             – file14
                             – file15
                                 ︙
            ︙

Yaitu, Folder1, Folder11, Folder21, ... masing-masing hanya berisi satu subdirektori. Sub direktori ini (Folder2, Folder12, Folder22, ...) tidak ada gunanya. Saya ingin memindahkan file3, file4, file5, ..., ke Folder1, dan kemudian menghapus Folder2 kosong. Dan kemudian ulangi di seluruh pohon; misalnya,

(root) – Folder1  – file3
                  – file4
                  – file5
                      ︙
       – Folder11 – file13
                  – file14
                  – file15
                      ︙
            ︙

Melakukan ini secara manual tidak praktis karena saya memiliki ratusan atau ribuan folder seperti ini. Saya sudah tahu "Hapus direktori kosong" yang sangat bagus untuk menghapus folder kosong, tetapi tidak sama.

Bagaimana saya menggabungkan ini dengan mudah di sistem Windows 7?

Gamnamno
sumber
Di Superuser kami tidak melakukan rekomendasi perangkat lunak, kecuali itu relevan untuk menyelesaikan masalah nyata. Seperti yang saya lihat, itu sedikit kabur: bagaimana setiap folder diatur? Apakah ada sesuatu yang menghentikan Anda dari memilih semua folder dan memindahkannya ke folder dasar ?. Saya juga menyarankan Anda meluangkan waktu untuk membaca halaman tur , untuk memahami bagaimana StackExchange Network bekerja secara berbeda dari situs lain.
Doktoro Reichard
@Namnamno: Saya kira maksud Anda. Jika saya salah menebak, edit pertanyaan untuk memperbaikinya.
Scott

Jawaban:

0

Anda dapat melakukannya dengan CMD (Saya telah menghapus yang kosong dari "folder 1" untuk menyederhanakan contoh, dengan menghapus kebutuhan untuk kutipan.): -

c:
cd \folder1
for /r %f in (*) do move /-y %f \folder1\
for /d %f in (*) do rd /s /q %f

Akan lebih aman untuk membuat folder tujuan baru dan memindahkan file di sana: setelah Anda yakin bahwa semua file telah dipindahkan (dengan dir / s ), hapus \ folder1 (dengan rd / s ) dan ganti nama (menggunakan pindah ) folder baru kembali ke \ folder1 : -

c:
md \newfolder1
cd \folder1
for /r %f in (*) do move /-y %f \newfolder1\
dir /s
rem If the previous command shows no files then proceed with:-
cd \
rd /s /q \folder1
move \newfolder1 \folder1

Perhatikan bahwa akan ada prompt jika nama digandakan dalam subdirektori yang berbeda (saya sertakan / -y dalam perintah pindah jika Anda pernah memasukkan perintah ke dalam file batch).

AFH
sumber
Hai, saya mencoba ini tetapi ketika saya mengetikkan baris ini: untuk / r% f di (*) jangan pindah / -y% f \ folder1 \, saya mendapatkan kesalahan sintaks yang salah, folder saya berada di desktop dan dengan benar bernama folder1, folder2 , dll ...
Gamnamno
Jika Anda berada di file batch, Anda seharusnya menggandakan tanda persen seperti pada for /r %%f in (*) do move /-y %%f \newfolder1\ .
AFH