Sử dụng tệp dữ liệu để xử lý tệp dựa trên tuổi

Thật tốt khi biết một số phép thuật dòng lệnh, vì đôi khi dễ dàng xử lý các lệnh theo cách đó.

Hướng dẫn này thể hiện lệnh Forfiles trong Windows Vista và Windows 7 (Cập nhật: Cũng có sẵn trong các phiên bản Windows mới hơn).

Forfiles có thể xử lý tệp dựa trên tên, phần mở rộng tệp và tuổi. Chẳng hạn, có thể tìm thấy tất cả các tài liệu trong một thư mục cũ hơn 20 ngày hoặc tất cả các tài liệu trong c: \ tài liệu đã được thay đổi kể từ một ngày cụ thể.

Lệnh forfiles có thể được kết hợp với các tùy chọn xử lý để xóa các tệp đó hoặc để tạo danh sách tất cả các tệp khớp với các bộ lọc. Hãy xem xét kỹ hơn lệnh forfiles.

FORFILES [/ P pathname] [/ M searchmask] [/ S] [/ C lệnh] [/ D [+ | -] dd / MM / yyyy]

Mô tả: Chọn một tệp (hoặc bộ tệp) và thực thi một lệnh trên tệp đó. Điều này rất hữu ích cho các công việc hàng loạt.

Danh sách tham số:

  • Tên đường dẫn / P Cho biết đường dẫn để bắt đầu tìm kiếm. Thư mục mặc định là thư mục làm việc hiện tại (.).
  • / M searchmask Tìm kiếm tệp theo tìm kiếm. Tìm kiếm mặc định là '*'.
  • / S Hướng dẫn các forfiles tái diễn thành các thư mục con. Giống như "TRỰC TIẾP / S".
  • Lệnh / C Cho biết lệnh thực thi cho mỗi tệp. Chuỗi lệnh nên được bọc trong dấu ngoặc kép. Lệnh mặc định là "cmd / c echo @file".

Các biến sau đây có thể được sử dụng trong chuỗi lệnh:

  • @file - trả về tên của tệp.
  • @fname - trả về tên tệp mà không cần gia hạn.
  • @ext - chỉ trả về phần mở rộng của tệp.
  • @path - trả về đường dẫn đầy đủ của tệp.
  • @relpath - trả về đường dẫn tương đối của tệp.
  • @ thẩmir - trả về "TRUE" nếu loại tệp là một thư mục và "FALSE" cho các tệp.
  • @fsize - trả về kích thước của tệp theo byte.
  • @fdate - trả về ngày sửa đổi cuối cùng của tệp.
  • @ftime - trả về thời gian sửa đổi cuối cùng của tệp.

Để bao gồm các ký tự đặc biệt trong dòng lệnh, hãy sử dụng mã thập lục phân cho ký tự ở định dạng 0xHH (ví dụ: 0x09 cho tab). Các lệnh CMD.exe nội bộ phải được đặt trước "cmd / c".

/ D ngày Chọn các tệp có ngày sửa đổi cuối cùng lớn hơn hoặc bằng (+) hoặc nhỏ hơn hoặc bằng (-), ngày được chỉ định sử dụng định dạng "dd / MM / yyyy"; hoặc chọn các tệp có ngày sửa đổi cuối cùng lớn hơn hoặc bằng (+) ngày hiện tại cộng với "dd" ngày, hoặc nhỏ hơn hoặc bằng (-) ngày hiện tại trừ "dd" ngày. Số ngày "dd" hợp lệ có thể là bất kỳ số nào trong phạm vi 0 - 32768. "+" được lấy làm dấu mặc định nếu không được chỉ định.

/? Hiển thị thông báo trợ giúp này. Tập tin trợ giúp này có thể được mở bằng cách nhập lệnh forfiles /? trong một dấu nhắc lệnh. Nhấn Windows-R, nhập cmd và nhấn enter để khởi chạy dòng lệnh trong Windows.

Lệnh forfiles /P c:\test\ /M .doc /S /D -10 tìm kiếm thư mục c: \ test và tất cả các thư mục con của nó cho các tệp có phần mở rộng .doc cũ hơn 10 ngày.

Tham số / p được theo sau bởi một thư mục xác định thư mục bắt đầu, / s bao gồm các thư mục con trong tìm kiếm, / m lọc các tệp và thư mục dựa trên chuỗi đã nhập và / D xác định ngày hoặc khoảng thời gian.

Lệnh / C được sử dụng để xử lý các tệp được tìm thấy thêm. Chẳng hạn, nó có thể được sử dụng để chạy lệnh sau: /C "cmd /c echo @fname" > test.txt echo tên của từng tệp được tìm thấy và lưu kết quả trong text.txt trong cùng thư mục.

Lệnh đầy đủ sau đó trông giống như forfiles /P c:\test\ /M .doc /S /D -10 /C "cmd /c echo @fname" > test.txt

Một khả năng khác là xóa các tệp phù hợp với tìm kiếm, điều này được thực hiện bằng lệnh /C "cmd /c del @File

Tuy nhiên, nên kiểm tra đầu ra trước, trước khi ban hành lệnh xóa để đảm bảo rằng chỉ các tệp đúng bị xóa. Người dùng có kinh nghiệm có thể tạo một tệp bó để thực hiện các tệp forfiles thường xuyên.