Điều này là dễ dàng với một vỏ Unix. Đây là những gì bạn có thể làm với shell Hamilton C của riêng tôi (bao gồm cả phiên bản miễn phí .) Bạn có thể làm điều gì đó rất giống với bash Cygwin .
mv *\* .
Nếu thư mục của bạn thực sự rất lớn, có thể ký tự đại diện thành một dòng lệnh quá dài để Windows chuyển sang quy trình con. (Cuộc gọi Windows CreatProcess giới hạn danh sách đối số ở mức 32K ký tự Unicode.) Nhưng trình bao C không có giới hạn bên trong, do đó bạn có thể lặp lại toàn bộ danh sách theo cách này:
foreach i ( *\* )
mv $i .
end
Theo quan điểm của @ MarkAllen ở trên, loại giả định này không có tên trùng lặp. Nếu có, các bản sao sau trong danh sách sẽ ghi đè lên các bản cũ hơn. Nếu đó là một mối quan tâm, bạn có thể lặp lại các tệp, mvchỉ sử dụng chúng nếu bạn không ghi đè. Các :tnhà điều hành là điều hành đuôi . Các -enhà điều hành là tập tin tồn tại nghiệm .
foreach i ( *\* )
if ( -e $i:t ) then
echo -2 $i not moved because it already exists
else
mv $i .
end
end
Điều này vẫn để lại các thư mục trống, có thể bạn không muốn sau khi chúng bị xóa. Đó có thể là lần lặp lại tiếp theo nếu nó quan trọng.