Tập lệnh hàng loạt để xóa tệp


96

Tôi có một tập lệnh hàng loạt như sau.

D:
del "D:\TEST\TEST1\Archive\*.TSV" 
del "D:\TEST\TEST1\Archive\*.TXT"
del "D:\TEST\TEST2\Archive\*.TSV" 
del "D:\TEST\TEST2\Archive\*.TXT"
del "D:\TEST\TEST 100%\Archive\*.TSV" 
del "D:\TEST\TEST 100%\Archive\*.TXT"

Đoạn mã trên xóa tất cả các tệp ".txt" và ".tsv" khỏi tất cả các thư mục ngoại trừ thư mục TEST 100%. Để xóa các tệp khỏi, TEST 100%tôi gặp lỗi như The Path could not be found. Tôi đoán ký hiệu% trong tên thư mục tạo ra vấn đề. Bất cứ ai có thể hướng dẫn tôi giải quyết vấn đề và xóa các tệp khỏi thư mục TEST 100%?


Tại sao bạn có một câu trích dẫn ở dòng đầu tiên? Ngoài ra, tại sao bạn lại đề cập đến ổ đĩa khi tệp hàng loạt của bạn đã được thay đổi thành ổ đĩa đó với dòng đầu tiên? Tôi đã thử tái tạo vấn đề của bạn và mọi thứ đều hoạt động. Bạn có xác nhận rằng Lưu trữ tồn tại trong Thử nghiệm 100% không?
RonaldBarzell

Câu trả lời:


112

Bạn cần thoát% bằng một ...

del "D:\TEST\TEST 100%%\Archive*.TXT"

Tôi không thể nói cho OP, nhưng trên hệ thống của tôi, không có vấn đề gì khi tìm đường dẫn với% và việc thoát với %% khiến hệ thống không tìm thấy nó.
RonaldBarzell

@ user1161318 - Tôi đã kiểm tra nó trên Windows 7. Nếu không có lối thoát, trong một tệp loạt, kết quả là "Hệ thống không thể tìm thấy đường dẫn được chỉ định". Như tôi đã đăng nó hoạt động.
Russ Freeman

Ok, trên XP, tôi nhận được kết quả ngược lại. Nó tìm thấy đường dẫn tốt với%, nhưng không tìm thấy nó với %%.
RonaldBarzell

5
Tôi đoán là bạn đang làm điều đó từ dấu nhắc lệnh chứ không phải từ tệp lô.
Russ Freeman

2
Có lẽ bạn đúng. Tôi quên rằng trong một tệp loạt,% là một tiền tố biến và bạn cần phải thoát khỏi nó. +1
RonaldBarzell

12

Có nhiều cách thực hiện hàng loạt, vì vậy nếu thoát với một phần trăm gấp đôi %%không hiệu quả với bạn, thì bạn có thể thử một cái gì đó như sau:

set olddir=%CD%
cd /d "path of folder"
del "file name/ or *.txt etc..."
cd /d "%olddir%"

Cách thức hoạt động:

set olddir=%CD%đặt biến "olddir"hoặc bất kỳ tên biến nào khác mà bạn thích vào thư mục tệp lô của bạn được khởi chạy từ đó.

cd /d "path of folder"thay đổi thư mục hiện tại mà lô sẽ xem xét. giữ các trích dẫn và thay đổi đường dẫn của thư mục mà bạn hướng tới.

del "file name/ or *.txt etc..."sẽ xóa tệp trong thư mục hiện tại mà lô của bạn đang xem, chỉ cần không thêm đường dẫn thư mục trước tên tệp và chỉ có tên tệp đầy đủ hoặc xóa nhiều tệp có cùng phần mở rộng với *.txthoặc bất kỳ phần mở rộng nào bạn cần.

cd /d "%olddir%"lấy biến được lưu bằng đường dẫn cũ của bạn và quay trở lại thư mục mà bạn đã bắt đầu lô, điều này không quan trọng nếu bạn không muốn lô quay trở lại đường dẫn thư mục trước đó và như đã nêu trước khi tên biến có thể được thay đổi thành bất cứ điều gì bạn muốn bằng cách thay đổi set olddir=%CD% line.


Điều này tốt nhất được thực hiện thông qua pushd "folder" && del "filename" & popd.
Nuno André

10

Giả sử bạn đã lưu phần mềm của mình vào máy tính để bàn.
nếu bạn muốn xóa toàn bộ một thư mục như một chương trình gỡ cài đặt, bạn có thể sử dụng nó.

cd C:\Users\User\Detsktop\
rd /s /q SOFTWARE

điều này sẽ xóa toàn bộ thư mục được gọi là phần mềm và tất cả các tệp và thư mục con của nó

Hãy chắc chắn rằng bạn xóa đúng thư mục vì Điều này không có tùy chọn Có / Không


4

Hãy xem xét rằng các tệp bạn cần xóa có phần mở rộng txtvà nằm ở vị trí D:\My Folder, sau đó bạn có thể sử dụng mã bên dưới bên trong tệp dơi.

cd "D:\My Folder"
DEL *.txt 

-7

trong mã hàng loạt, đường dẫn của bạn không được chứa bất kỳ Khoảng trắng nào, vì vậy vui lòng thay đổi tên thư mục của bạn từ "TEST 100%" thành "TEST_100%" và mã mới của bạn sẽ là "D: \ TEST \ TEST_100% \ Archive * .TXT"

hy vọng điều này sẽ giải quyết vấn đề của bạn


6
Chưa từng nghe về nó. Đó là mới? -Cảm giác. Nó hoạt động với khoảng trắng như khi không có, miễn là bạn đặt nó trong dấu ngoặc kép.
Blacktempel
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.