Pindahkan file dari beberapa folder ke direktori induk dengan command prompt

8

Saya memiliki beberapa file .rar di beberapa folder seperti ini:

C:\Docs\Folder1\rarfile1-1.rar
C:\Docs\Folder1\rarfile1-2.rar
C:\Docs\Folder1\rarfile1-3.rar  

C:\Docs\Folder2\rarfile2-1.rar
C:\Docs\Folder2\rarfile2-2.rar
C:\Docs\Folder2\rarfile2-3.rar  

C:\Docs\Folder3\rarfile3-1.rar
C:\Docs\Folder3\rarfile3-2.rar
C:\Docs\Folder3\rarfile3-3.rar  

Saya ingin memindahkan semua file .rar ke direktori induk 'C: \ Docs'. Saya memiliki lebih dari 3 folder, jadi saya berpikir untuk membuat file batch atau sesuatu. Apa yang akan menjadi perintah untuk melakukan ini?
Terima kasih

Nick
sumber
Saya mencari masalah yang sama dan saya menemukan jawaban ini berguna.
lalthomas

Jawaban:

15

Saya baru saja membuat aplikasi commandline yang melakukan hal ini (ditambah menunjukkan beberapa statistik) dan mencari untuk melihat apakah ada orang yang mencoba melakukannya sehingga saya bisa membaginya dan menyelamatkan seseorang dari harus mencari tahu.

Sangat menyenangkan untuk menulis. Membutuhkan. NET 3.5, bekerja dari commandline, memanggil dengan -h atau tanpa parameter untuk penggunaan.

MoveFilesUpFromSubfolders
(kode sumber)

Umpan balik plus! :)

Oh, dan tangkapan layar tampilannya:

                               

Camilo Martin
sumber
3
+1 Menulis program untuk memecahkan masalah seseorang. Itu komitmen!
Li-aung Yip
1
@ Li-aungYip Terima kasih banyak atas pujiannya! Juga, karena keadaan, saya tidak lagi memiliki hard drive tempat saya menggunakan kode pada saat saya membuat ini (setelah kehilangan ini dan banyak hal lainnya), jadi saya cukup senang melihatnya di sini dan telah mengunduhnya sekarang ( pujian untuk Mediafire karena menyimpannya begitu lama dengan beberapa unduhan, dan saya beruntung saya tidak menyimpannya di Megaupload!). Jadi, jika Anda menempatkannya dalam perspektif, semakin Anda memberi semakin banyak yang Anda terima :)
Camilo Martin
Kerja bagus! +1 dan 50 rep. Saya tahu ini berusia 4,5 tahun, tetapi ini sangat berguna bagi saya karena saya mengunduh 90+ file yang masuk dalam 90+ folder. Ini membantu saya untuk meletakkan semua file di folder induknya.
Satu-satunya kritik yang saya miliki adalah bahwa ketika saya mencoba menggunakan ini, kesalahan tentang masalah dengan folder terus muncul, dan itu tidak menyatakan mengapa. Hanya dengan menggunakan perintah -t, saya dapat menentukan mengapa ada masalah dengan folder (karena diberi nama dengan 250+ karakter). Ini mudah dielakkan dengan menyorot semua folder dan mengganti nama salah satunya (maka sisanya akan ditambahkan dengan angka).
@ edmastermind29 Saya sangat senang mengetahui bahwa kode lama saya masih digunakan untuk seseorang. Percaya atau tidak, arsip kode sumber diambil dari mediafire karena ditandai secara otomatis sebagai pelanggaran hak cipta (yang sangat tidak masuk akal, mengingat tidak ada video atau audio tetapi hanya teks di sana), dan saya tidak mengerti bagaimana saya membuat ini . Jika ada gunanya, pada titik ini saya akan menulis bash one-liner untuk menangani masalah seperti ini, sesuatu seperti mv dir/sub/* dir; rmdir dir/subdalam satu lingkaran.
Camilo Martin
7

Cobalah ini:

for /d %f in (docs\*) do (
pushd %f
move .\*.* ..
popd
)
BillP3rd
sumber
Bisakah Anda jelaskan ini sedikit lagi?
Nick
@Nick: Untuk semua folder docs, masukkan folder. Pindahkan semua file dari folder saat ini ke folder induk. Kembali ke folder induk.
Hello71
The pushddan popdtidak benar-benar diperlukan. cdakan bekerja dengan baik.
Hello71
Seperti yang dijelaskan oleh Hello71. Juga, dapat dilakukan dengan satu baris:for /d %f in (docs\\*) do move %f\\*.* docs
BillP3rd
1
NB. Baik yang asli di atas maupun yang satu-liner tidak akan berurusan dengan benar dengan nama file duplikat.
BillP3rd
5

Jawaban untuk pertanyaan Anda sangat sederhana. Ini bukan skrip tetapi itu akan dilakukan.

Saya berasumsi bahwa Anda menjalankan windows.

  • Tempatkan diri Anda di direktori C: \ Documents
  • Tekan F3 (cari)
  • Cari * .rar
  • Tekan Crtl + A
  • Tekan Ctrl + X
  • Tutup jendela pencarian dan satu lagi pergi ke C: \ Dosc di explorer
  • Rekatkan file yang dipotong dengan menekan CTRL + V.
integratorIT
sumber
+1 untuk penyelesaian yang bagus dan sederhana tanpa pihak ketiga atau skrip.
Syakur Rahman
+1 Metode terbaik dan tercepat A +++
Sickest
3

Suction bekerja untuk saya dalam masalah ini.

Suction adalah aplikasi portabel gratis yang akan membantu memilah folder yang berantakan dalam waktu singkat.

Suction bekerja dengan menggabungkan direktori induk. Misalnya, jika direktori gambar Anda penuh dengan folder yang tidak perlu, seret folder ke antarmuka Suction, dan itu akan menghapus folder, meninggalkan Anda hanya dengan file. Ini juga berguna untuk orang yang mengunduh banyak hal.

Raystafarian
sumber
0

Ini seharusnya bekerja:

move C:\Docs\*\* C:\Docs
Halo71
sumber
2
Saya mendapatkan kesalahan: sintaks nama file, nama direktori, atau label volume salah.
Nick
** tidak berfungsi
Nick
Anda harus memastikan Anda memasukkan `\`, dan itu tidak lolos oleh editor teks Anda.
Hello71
Mengeluarkan perintah ini dari prompt CMD (di Windows 7) menghasilkan kesalahan yang dicatat oleh Nick.
BillP3rd
Ini tidak akan berhasil. * tidak berfungsi dengan benar untuk folder. Harus keluar program pihak ketiga seperti Total Commander.
surfasb
0

Contoh menyalin atau memindahkan file dari sub-direktori ke direktori tunggal

untuk / f "token = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') lakukan salin / y "% a" C: \ Temp \ epub.

untuk / f "token = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') lakukan pindah / y "% a" C: \ Temp \ epub

"token = * adalah untuk mengambil jalur dengan karakter khusus

pengguna340812
sumber