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.
mv *\* .
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:
foreach i ( *\* )
mv $i .
end
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, mvhanya jika Anda tidak menimpa. The :tOperator adalah operator yang ekor . The -eOperator adalah file ada tes .
foreach i ( *\* )
if ( -e $i:t ) then
echo -2 $i not moved because it already exists
else
mv $i .
end
end
Ini masih meninggalkan direktori kosong, yang mungkin tidak Anda inginkan setelah dikosongkan. Itu bisa menjadi iterasi berikutnya jika itu penting.