Di chuyển các tệp từ nhiều thư mục vào thư mục cha với dấu nhắc lệnh


8

Tôi có nhiều tệp .rar trong nhiều thư mục như thế này:

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  

Tôi muốn di chuyển tất cả các tệp .rar sang thư mục mẹ 'C: \ Docs'. Tôi có nhiều hơn 3 thư mục, vì vậy tôi đã nghĩ đến việc tạo một tệp bó hoặc một cái gì đó. Điều gì sẽ là các lệnh để làm điều này?
Cảm ơn


Tôi đã tìm kiếm một vấn đề tương tự và tôi thấy câu trả lời này là hữu ích.
lalthomas

Câu trả lời:


15

Tôi vừa mới tạo một ứng dụng dòng lệnh thực hiện chính xác điều này (cộng với hiển thị một số thống kê) và tìm kiếm xem có ai đang cố gắng làm điều đó để tôi có thể chia sẻ nó và cứu ai đó khỏi phải tìm ra nó không.

Đó là rất nhiều niềm vui để viết. Yêu cầu .NET 3.5, hoạt động từ dòng lệnh, gọi với -h hoặc không có tham số để sử dụng.

MoveFilesUpFromSubprinters
(mã nguồn)

Phản hồi một cộng! :)

Ồ, và ảnh chụp màn hình của nó trông như thế nào:

                               


3
+1 Viết chương trình để giải quyết vấn đề của ai đó. Đó là cam kết!
Li-aung Yip

1
@ Li-aungYip Cảm ơn bạn rất nhiều vì lời khen! Ngoài ra, do hoàn cảnh, tôi không còn ổ cứng mà tôi đã sử dụng để mã hóa trong thời gian tôi thực hiện điều này (đã mất cái này và nhiều thứ khác), vì vậy tôi rất vui khi thấy nó ở đây và đã tải xuống ngay bây giờ ( kudos cho Mediafire để lưu trữ nó quá lâu với vài lần tải xuống và tôi may mắn là tôi đã không lưu trữ nó trong Megaupload!). Vì vậy, nếu bạn đặt nó trong phối cảnh, bạn càng nhận được nhiều hơn bạn nhận được :)
Camilo Martin

Công việc tuyệt vời +1 và 50 đại diện. Tôi biết điều này đã 4,5 năm tuổi, nhưng điều này rất hữu ích cho tôi vì tôi đã tải xuống hơn 90 tệp trong hơn 90 thư mục. Điều này giúp tôi đặt tất cả các tệp trong thư mục mẹ của nó.

Bài phê bình duy nhất tôi có là khi tôi cố gắng sử dụng điều này, một lỗi về một vấn đề với thư mục liên tục xuất hiện, và nó không nêu rõ lý do tại sao. Chỉ bằng cách sử dụng lệnh -t, tôi mới có thể xác định lý do tại sao có vấn đề với thư mục (vì nó được đặt tên với hơn 250 ký tự). Điều này dễ dàng bị phá vỡ bằng cách làm nổi bật tất cả các thư mục và đổi tên một trong số chúng (sau đó phần còn lại sẽ được gắn thêm một số).

@ edmastermind29 Tôi rất vui khi biết rằng một mã cũ như vậy của tôi đã được sử dụng cho một người nào đó. Dù bạn có tin hay không, kho lưu trữ mã nguồn đã bị loại khỏi phương tiện truyền thông vì bị gắn cờ tự động là vi phạm bản quyền (điều này khá vô lý, vì không có video hay âm thanh mà chỉ nhắn tin ở đó) và tôi không biết về cách tôi tạo ra điều này . Nếu nó được sử dụng, tại thời điểm này tôi sẽ viết một bash one-liner để xử lý một vấn đề như thế này, một cái gì đó giống như mv dir/sub/* dir; rmdir dir/subtrong một vòng lặp.
Camilo Martin

7

Hãy thử xem:

for /d %f in (docs\*) do (
pushd %f
move .\*.* ..
popd
)

Bạn có thể giải thích điều này nhiều hơn một chút?
Nick

@Nick: Đối với tất cả các thư mục trong docs, hãy nhập thư mục. Di chuyển tất cả các tệp từ thư mục hiện tại sang thư mục cha. Quay trở lại thư mục cha.
Hello71

Các pushdpopdlà không thực sự cần thiết. cdsẽ làm việc tốt
Hello71

Theo giải thích của Hello71. Ngoài ra, có thể được thực hiện với một dòng duy nhất:for /d %f in (docs\\*) do move %f\\*.* docs
BillP3rd

1
Lưu ý Cả bản gốc và phần lót đều không xử lý đúng với tên tệp trùng lặp.
BillP3

5

Vâng, câu trả lời cho câu hỏi của bạn rất đơn giản. Nó không phải là một kịch bản nhưng nó sẽ làm.

Tôi giả sử rằng bạn đang chạy windows.

  • Đặt chính bạn vào thư mục C: \ Docs
  • Nhấn F3 (tìm kiếm)
  • Tìm kiếm * .rar
  • Nhấn Crtl + A
  • Nhấn Ctrl + X
  • Đóng cửa sổ tìm kiếm và một lần nữa vào C: \ Dosc trong explorer
  • Dán các tập tin đã cắt bằng cách nhấn CTRL + V.

+1 cho cách giải quyết tốt đẹp và đơn giản mà không cần bất kỳ bên thứ 3 hoặc tập lệnh nào.
Syakur Rahman

+ 1 phương pháp tốt nhất và nhanh nhất A +++
Sickest

3

Hút làm việc cho tôi về vấn đề này.

Hút là một ứng dụng miễn phí, di động sẽ giúp sắp xếp các thư mục lộn xộn trong thời gian ngắn.

Hút hoạt động bằng cách hợp nhất các thư mục cha mẹ. Ví dụ: nếu thư mục hình ảnh của bạn chứa đầy các thư mục không cần thiết, hãy kéo thư mục vào giao diện Hút và nó sẽ loại bỏ các thư mục, khiến bạn chỉ còn lại các tệp. Điều này cũng hữu ích cho những người tải xuống nhiều thứ.


0

Điều này sẽ làm việc:

move C:\Docs\*\* C:\Docs

2
Tôi gặp lỗi: tên tệp, tên thư mục hoặc cú pháp nhãn âm lượng không chính xác.
Nick

** không hoạt động
Nick

Bạn cần chắc chắn rằng bạn đã đặt `\` vào, và nó không bị thoát bởi trình soạn thảo văn bản của bạn.
Hello71

Việc ban hành lệnh này từ dấu nhắc CMD (trong Windows 7) sẽ tạo ra lỗi được ghi chú bởi Nick.
BillP3

Điều này sẽ không làm việc. * không hoạt động đúng cho các thư mục. Phải phá vỡ các chương trình của bên thứ ba như Total Commander.
Surfasb

0

Ví dụ về sao chép hoặc di chuyển tệp từ thư mục con sang một thư mục

for / f "tokens = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') làm bản sao / y "% a" C: \ Temp \ epub.

for / f "tokens = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') làm di chuyển / y "% a" C: \ Temp \ epub

"mã thông báo = * là để bắt các đường dẫn có ký tự đặc biệt

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.