Tất cả bạn cần là như sau:
findstr /m /c:toFind *
Nó sẽ tìm kiếm mọi tệp trong thư mục hiện tại của bạn và in ra tên của các tệp chứa chuỗi tìm kiếm của bạn.
Nếu bạn muốn tìm kiếm một thư mục khác với thư mục hiện tại, thì:
pushd "c:\yourPath"
findstr /m /c:toFind *
popd
Nếu bạn muốn bao gồm đường dẫn đầy đủ của mỗi tệp trong đầu ra, thì:
findstr /m /c:toFind "c:\yourPath\*"
Cách thích hợp để sử dụng vòng lặp FOR để lặp lại các tệp như bạn dự định ban đầu là:
for %%F in (*) do findstr /m /c:toFind "%%F"
Nhưng không cần sử dụng FOR để lặp lại các tệp khi FINDSTR có thể tự lặp lại các tệp.
Lệnh FOR là lệnh phức tạp nhất có sẵn cho lô. Có nhiều hình thức khác nhau làm những việc hoàn toàn khác nhau. Đây chỉ là một vài:
for %%A in (file list with wildcard support) - iterate files
for /f "options" %%A in (filePath) - read and parse a file
for /f "options" %%A in ("string") - parse a string
for /f "options" %%A in ('someCommand') - parse the output of a command
Bạn nên đọc tài liệu rất cẩn thận. Nhập HELP FOR
hoặc FOR /?
từ dấu nhắc lệnh để lấy tài liệu.
for /r
không có các tùy chọn nhưfor /f
, theo đó cú pháp sẽdelims=
thay thếdelims:
.