Điểm:0

Xóa tất cả các thư mục trên tất cả các ổ đĩa có "foo" HOẶC "bar" trong tên thư mục bằng batchfile

lá cờ jp

tôi đang cố gắng để xóa tất cả các thư mục trên tất cả các ổ đĩa có kiểu đặt tên ở trên, tuy nhiên chỉ ở cấp thư mục đầu tiên, tức là ngay bên dưới ký tự ổ đĩa, chẳng hạn như:

F:\tên thư mục này chứa FOO và nên bị xóa

...không có xác nhận cũng như thông báo lỗi (ví dụ: trong trường hợp không tìm thấy thư mục nào), với một tệp bó.

Tôi đã tìm thấy điều này: xóa tất cả các thư mục có tên tmp bằng tệp bó và tự hỏi nếu giải pháp từ đó là một điểm khởi đầu tốt?

@echo tắt
đặt dir="c:\FOLDERLOCATION\"
CHO /D /R %dir% %%X IN (*.tmp) LÀM RMDIR /S /Q "%%X"
tạm ngừng
lối ra
Điểm:1
lá cờ th

Đọc và làm theo - Có điều kiện thực hiện nhiều lần một lệnh.. Bạn có thể áp dụng một trong hai FOR-Thư mục, hoặc FOR-Lệnh Kết quả như sau:

FOR-Thư mục (nhược điểm: không phân biệt chữ hoa chữ thường; ký tự đại diện không cho phép mẫu giống biểu thức chính quy nên chúng tôi cần chạy vòng lặp nhiều lần hơn).

@echo tắt
đặt "dir=c:\FOLDERLOCATION\"
đẩy "% dir%"
:: ââââ tiếng vang để gỡ lỗi
CHO /D /R %%X IN (*foo*) DO echo RMDIR /S /Q "%%~fX"
CHO /D /R %%X IN (*bar*) DO echo RMDIR /S /Q "%%~fX"
:: ââââ echo để gỡ lỗi
popd
tạm ngừng

FOR-Lệnh Kết quả kết hợp với phát hiện (thuận lợi: phát hiện độc lập cho phép cả mẫu tìm kiếm phân biệt chữ hoa chữ thường và mẫu tìm kiếm giống như biểu thức chính quy):

@echo tắt
đặt "dir=c:\FOLDERLOCATION\"
FOR /F "delims=" %%X IN ('dir /B/S /A:D "%dir%" ^| findstr /I "foo|bar"') DO 2>NUL echo RMDIR /S /Q " %%~fX"
:: ECHO ở dòng trên chỉ để gỡ lỗi
tạm ngừng

một bất lợi là thư mục danh sách được tạo tĩnh vì vậy chúng tôi cần chuyển hướng thông báo lỗi bằng cách sử dụng 2>NUL

lá cờ jp
Thật tuyệt vời! Cũng có thể để tệp lô chạy ẩn và đợi các ổ đĩa mới xuất hiện, chẳng hạn như ổ cứng ngoài, v.v., rồi cũng hành động trên những ổ đĩa này?
lá cờ jp
Nhân tiện, set "dir=c:\FOLDERLOCATION\" làm gì?
JosefZ avatar
lá cờ th
[Xử lý dấu ngoặc kép trong tập lệnh bó Windows](https://stackoverflow.com/questions/535975/).Xác định một biến là `set "dir=c:\FOLDERLOCATION\"` (giá trị của nó không bao gồm dấu ngoặc kép) và sử dụng nó được trích dẫn nếu cần, ví dụ: `type "%dir%%file%%ext%"` (cung cấp `set "file=some file name"` và `set "ext=.ext"`)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.