Saya memiliki folder (sebut saja A) dengan banyak subfolder B, C, D, E, yang kemudian memiliki subfolder B1, B2, B3, ... C1, C2, C3 ...
Bagaimana saya bisa menggunakan cmd memindahkan semua file dari semua subfolder ke folder "root" A?
Saya memiliki folder (sebut saja A) dengan banyak subfolder B, C, D, E, yang kemudian memiliki subfolder B1, B2, B3, ... C1, C2, C3 ...
Bagaimana saya bisa menggunakan cmd memindahkan semua file dari semua subfolder ke folder "root" A?
Jawaban:
Posting asli saya lalai untuk menyertakan ekstensi file dalam perintah pindah.
%~ni
hanya mengembalikan nama, Anda harus menggunakan%~nxi
untuk mendapatkan nama file dan ekstensi! Saya harap Anda belum mengubah nama file Anda di akun saya! (
Dari Command Prompt:
cd /d C:\Path\To\A
for /r %i in (*) do @move "%i" "%~nxi"
Jika Anda perlu membersihkan folder kosong sesudahnya:
for /d %i in (*) do @rd /s /q "%i"
Sekarang, jika Anda memiliki bentrokan nama file, Anda harus melakukannya sendiri. Anda dapat menambahkan /y
parameter ke move
perintah (sebelum "%i"
) untuk memaksa overwrites. Jika Anda menginginkan sesuatu yang berbeda, Anda akan memerlukan program lain yang dapat secara otomatis mengubah nama segalanya untuk Anda.
Juga, jika Anda ingin menggunakan ini dalam file batch, ubah semua %
ke %%
.
FOR /r
- bagus!
Buat folder dan salin semua folder lain ke dalamnya, lalu klik kanan folder itu dan pilih Cari . Di kotak pencarian, masukkan *.*
.
Ini akan mencantumkan semua file dan folder. Pilih semua file yang Anda inginkan di direktori root Anda dan potong. Arahkan ke direktori root Anda dan rekatkan semua file di sana.
Instal Cygwin (atau lingkungan Unix lain untuk Windows) dan jalankan yang berikut:
cd A
find . -type f -exec mv {} . \;
mv
dan find
Anda, Anda mungkin perlu menggunakannya find . -type f -exec mv -t . {} \;
.
mkdir -p a/a1 a/a2 a/a3 b/b1 b/b2 b/b3 c
dan touch a/a1/foo a/a1/bar a/a2/baz a/a3/qux b/b1/quux b/b2/quuux b/b3/quuuux c/ccc
untuk persiapan.
find . -type f -exec mv {} . ;
Dan sepertinya berhasil ok.