Lệnh forfiles trong Windows

Lệnh forfiles chọn và thực hiện một lệnh trên một file hoặc tập hợp các file. Lệnh này rất hữu ích cho việc xử lý hàng loạt.

Để biết ví dụ về cách sử dụng lệnh này, vui lòng xem phần ví dụ bên dưới.

Cú pháp lệnh forfiles

forfiles [/p <Path>] [/m <SearchMask>] [/s] [/c "<Command>"] [/d [{+|-}][{<Date>|<Days>}]]

Tham số

Tham số Mô tả
/p <Path> Chỉ định đường dẫn từ đó lệnh bắt đầu tìm kiếm. Theo mặc định, tìm kiếm bắt đầu trong thư mục hiện hành.
/m <SearchMask> Tìm kiếm file theo mash tìm kiếm được chỉ định. Mash tìm kiếm mặc định là *.\*.
/s Chỉ dẫn lệnh forfiles tìm kiếm trong thư mục con một cách đệ quy.
/c "<Command>" Chạy lệnh được chỉ định trên mỗi file. Các chuỗi lệnh phải được đặt trong dấu ngoặc kép. Lệnh mặc định là "cmd /c echo @file".
/d [{+|-}]⁠[{<Date>|⁠<Days>}] Chọn file có ngày được sửa đổi lần cuối trong khung thời gian đã chỉ định.
- Chọn file có ngày được sửa đổi muộn hơn hoặc bằng (+) hay sớm hơn hoặc bằng (-) ngày được chỉ định, trong đó Date có định dạng MM/DD/YYYY.
- Chọn file có ngày được sửa đổi muộn hơn hoặc bằng (+) ngày hiện tại cộng với số ngày được chỉ định hay sớm hơn hoặc bằng (-) ngày hiện tại trừ đi số ngày được chỉ định.
- Các giá trị hợp lệ cho Days bao gồm bất kỳ số nào trong phạm vi từ 0 đến 32.768. Nếu không có dấu hiệu nào được chỉ định, + được sử dụng theo mặc định.
/? Hiển thị trợ giúp tại dấu nhắc lệnh.

Lưu ý

  • Forfiles thường được sử dụng trong các file batch.
  • Forfiles /s tương tự như dir /s.
  • Bạn có thể sử dụng các biến sau trong chuỗi lệnh, khi được chỉ định bởi tùy chọn dòng lệnh /c:
Biến Mô tả
@FILE Tên file.
@FNAME Tên file không có phần mở rộng.
@EXT Phần mở rộng tên file.
@PATH Đường dẫn đầy đủ của file.
@RELPATH Đường dẫn tương đối của file.
@ISDIR Đánh giá TRUE nếu loại tệp là một thư mục. Nếu không, biến này sẽ đánh giá thành FALSE.
@FSIZE Kích thước file, tính bằng byte.
@FDATE Ngày thay đổi gần nhất được ghi lại trên file.
@FTIME Thời gian thay đổi gần nhất được ghi lại trên file.
  • Với forfiles, bạn có thể chạy lệnh trên hoặc chuyển đối số cho nhiều file. Ví dụ, bạn có thể chạy lệnh type trên tất cả các file trong một cây thư mục có phần mở rộng tên file .txt. Hoặc bạn có thể thực thi mọi file batch (* .bat) trên ổ đĩa C, với tên file "Myinput.txt" làm đối số đầu tiên.
  • Với forfiles, bạn có thể thực hiện bất kỳ thao tác nào sau đây:
    • Chọn file theo ngày tuyệt đối hoặc ngày tương đối bằng cách sử dụng tham số /d.
    • Tạo một cây lưu trữ các file bằng cách sử dụng các biến như @FSIZE@FDATE.
    • Phân biệt các file từ các thư mục bằng cách sử dụng biến @ISDIR.
    • Bao gồm các ký tự đặc biệt trong dòng lệnh bằng cách sử dụng code thập lục phân cho ký tự, ở định dạng 0xHH (ví dụ: 0x09 cho một tab).
  • Forfiles hoạt động bằng cách triển khai các thư mục con recurse trên các công cụ được thiết kế để xử lý chỉ một file duy nhất.

Ví dụ

Để liệt kê tất cả các file batch trên ổ C, hãy nhập:

forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file is a batch file"

Để liệt kê tất cả các thư mục trên ổ C, hãy nhập:

forfiles /p c:\ /s /m *.* /c "cmd /c if @isdir==TRUE echo @file is a directory"

Để liệt kê tất cả các file trong thư mục hiện tại đã tồn tại ít nhất một năm, hãy nhập:

forfiles /s /m *.* /d -365 /c "cmd /c echo @file is at least one year old."

Để hiển thị văn bản "File is outdated" cho mỗi file trong thư mục hiện tại, tồn tại trước ngày ngày 1 tháng 1 năm 2007, hãy nhập:

forfiles /s /m *.* /d -01/01/2007 /c "cmd /c echo @file is outdated."

Để liệt kê phần mở rộng tên file của tất cả các file trong thư mục hiện tại ở định dạng cột và thêm tab trước phần mở rộng, hãy nhập:

forfiles /s /m *.* /c "cmd /c echo The extension of @file is 0x09@ext"

Xem thêm:

Thứ Hai, 03/12/2018 12:41
51 👨 156