Làm cách nào để xóa tệp khỏi thư mục bằng danh sách tên tệp trong windows?


23

Tôi có một thư mục chứa các tệp 2K +, tôi cần xóa khoảng 200, tôi có một tệp txt với tất cả các tên tệp tôi cần xóa theo thứ tự trong danh sách, làm cách nào để xóa các tệp cụ thể khỏi thư mục bằng danh sách? (Hệ điều hành là windows 7)

Câu trả lời:


18

Cách đơn giản là sao chép tệp txt vào một tệp được gọi mydel.battrong thư mục của các tệp cần xóa. Sử dụng trình chỉnh sửa như Microsoft Word sẽ chỉnh sửa tệp này. Thực hiện thay thế toàn cầu trên Newline thông thường ^ptrong Word. Thay thế nó bằng space/f^pdelspace. Điều này sẽ thay đổi

File1.bin
File20.bin
File21.bin

đến (với /f"buộc xóa các tệp chỉ đọc"):

File1.bin /f
del File20.bin /f
del File21.bin /f
del

Chỉnh sửa dòng nắm tay để thêm delkhoảng trắng và xóa dòng cuối cùng.

Chạy lệnh bó.


Ngoài công tắc / Y, dường như không hoạt động trong lệnh win7 del, công cụ này hoạt động khá tốt .. cảm ơn
Avishking

2
Điều đó có lẽ được cho là /fđể "buộc xóa các tệp chỉ đọc" thay vì /y.
afrazier

Đúng afrazier. Tôi đã trộn lẫn / Y hoạt động với XCOPY và một hoặc hai chương trình DOS khác để '
Bỏ qua

Trong các trình soạn thảo biết cách tìm / thay thế bằng regex, chẳng hạn như Notepad ++, bạn sẽ cần thay thế "^" bằng "del" và "$" bằng "/ f", trong đó ^ đại diện cho phần đầu của mỗi hàng và $ - kết thúc.
Dan Mirescu

38

Nhập cái này vào dòng lệnh, thay thế tệp của bạn cho files_to_delete.txt:

for /f %i in (files_to_delete.txt) do del %i

Một phiên bản này phù hợp để bao gồm trong .cmdcác tệp (gấp đôi %%) và có thể xử lý các khoảng trắng trong tên tệp:

for /f "delims=" %%f in (files_to_delete.txt) do del "%%f"

1
Điều này thực sự đã xóa danh sách tập tin thay vì chính các tập tin ... tôi phải tạo lại danh sách: |
Avishking

4
Lời xin lỗi chân thành của tôi. Tôi quên /fcờ.
William Jackson

Điều đó khá tiện lợi, tôi không biết các vòng lặp hỗ trợ dòng lệnh như thế. Bạn có muốn viết một bài đăng trên blog cho blog SU về điều này và những điều phức tạp khác của dòng lệnh không?
Ivo Flipse

1
@Ivo: Bạn có thể muốn xem qua computerhope.com/batch.htm hoặc superuser.com/questions/tagged/batch để tìm hiểu thêm. Giống như Unix, phần lớn những gì có thể được thực hiện trong các tập lệnh (tệp bó) cũng có thể được thực hiện trực tiếp từ dòng lệnh.
BlueRaja - Daniel Pflughoeft

Tôi đã tạo một tập tin bat và sao chép ví dụ thứ 2: result: files_to_delete.txt vẫn bị xóa. (ngay cả với cờ / f)
bvdb

18

Sử dụng PowerShell:

Get-Content c:\path\to\list.txt | Remove-Item

1
Wow, đó là cách dễ đọc hơn hàng loạt.
TheLQ

Đối với những độc giả tương lai ... Tôi đã phải thay đổi người vận hành đường ống thành một >để thực hiện công việc này. Tức là Get-Content c:\path\to\list.txt > Remove-Item... tôi đã có đầy đủ các con đường UNC trong mình list.txt. Hi vọng điêu nay co ich.
NateJ

@NateJ Tôi đã thử sử dụng >và nó chỉ tạo một tệp cho tôi, thay vì xóa mọi thứ.
Brian J

@BrianJ hmm, tôi sẽ phải kiểm tra lại những gì tôi đã làm .. bắt tốt.
NateJ

1

Tôi tưởng tượng nó có thể được thực hiện với powershell.

Biết Perl , tôi có xu hướng sử dụng nó cho loại điều này

perl -l -n -e "unlink" filenames.txt

1

Phương pháp đầu tiên hoạt động sau một số thay đổi:

  1. mở Notepad
  2. sao chép tất cả các tên tệp có phần mở rộng cần xóa sau khi thêm delvào lúc đầu như

    del File1.bin
    del File20.bin
    del File21.bin
    
  3. lưu tập tin như xyz.battrong cùng một thư mục

  4. chạy tập tin

2
... Tệp văn bản trong câu hỏi có khoảng 200 tên tệp trong đó. Tại sao thêm delthủ công như bạn đang đề xuất, trong khi các giải pháp đã được đăng để tự động hóa nó? Bên cạnh đó: bất kỳ trình soạn thảo lành mạnh nào cũng sẽ có một số hỗ trợ cho việc tìm kiếm và thay thế bao gồm cả kết thúc dòng (hoặc bắt đầu dòng, sử dụng biểu thức thông thường), macro hoặc để chỉnh sửa chế độ khối hoặc cột (thường được bắt đầu bằng cách giữ Tùy chọn hoặc Alt và sau đó chọn một chặn, sau đó người ta có thể chỉ cần gõ trên nhiều dòng cùng một lúc).
Arjan
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.