Giải thích vòng lặp for trong batch file
I. Ví dụ file weather.txt có nội dung như sau:
Xem xét ví dụ sau
1. Giải thích câu lệnh
-Lặp qua từng dòng trong file weather.txt.
-/F chỉ để lặp qua các tên file hoặc string, ở đây là string.
-Token ở đây là vị trí trường thông tin thứ nhất và thứ 3 được ngăn cách bởi dấu phẩy.
-delims chỉ ra dấu ngăn cách các trường (field) trong dòng text.
-%%G nghĩa là ứng với token 1 thì sẽ tương ứng %%G với trường thứ nhất, sau đó là %%H ứng với token 3 tức trường thứ 3
2. Một ví dụ khác
-Lặp một lần qua trường text, có 4 trường tuy nhiên chỉ lấy trường số 4 ngăn cách bởi dấu phẩy.
-Sau khi lấy sẽ gán cho G, và in G ra, kết quả là Date paid 12-AUG-09
3. Giải thích các tham số hình thức
-Trong bat file có cả thảy 10 tham số hình thức, bắt đầu từ %0 đến %9
-Trong file bat thì phải ghi dấu % 2 lần ví dụ %%0 %%1...%%9
-%0 ám chỉ tên file bat đang được thực hiện
-%1 ám chỉ tham số đầu vào thứ nhất tương ứng
-%2 ám chỉ tham số đầu vào thứ ba
4. Ta xem xét một ví dụ về tham số hình thức
Ở đây có hai giá trị đầu vào, do vậy file bat sẽ hiểu là gán TEXT vào vị trí %1, BAOCAO vào vị trí %2
tương ứng
Vì thế chương trình sẽ hiểu như sau:
-Hiển thị câu: VANBAN
-Mở thư mục: MD TEXT
-Vào thư mục: CD TEXT
-Chép file BAOCAO.TXT từ ổ đĩa C
-Liệt kê tất cả các file trong đĩa A
5. Ví dụ gọi chính chương trình đang chạy hienthi.bat cho tới vô hạn.
January,Snowy,02 February,Rainy,15 March,Sunny,25
Xem xét ví dụ sau
FOR /F "tokens=1,3 delims=," %%G IN (weather.txt) DO @echo %%G %%H
1. Giải thích câu lệnh
-Lặp qua từng dòng trong file weather.txt.
-/F chỉ để lặp qua các tên file hoặc string, ở đây là string.
-Token ở đây là vị trí trường thông tin thứ nhất và thứ 3 được ngăn cách bởi dấu phẩy.
-delims chỉ ra dấu ngăn cách các trường (field) trong dòng text.
-%%G nghĩa là ứng với token 1 thì sẽ tương ứng %%G với trường thứ nhất, sau đó là %%H ứng với token 3 tức trường thứ 3
2. Một ví dụ khác
FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO @echo Date paid %%G
-Lặp một lần qua trường text, có 4 trường tuy nhiên chỉ lấy trường số 4 ngăn cách bởi dấu phẩy.
-Sau khi lấy sẽ gán cho G, và in G ra, kết quả là Date paid 12-AUG-09
3. Giải thích các tham số hình thức
-Trong bat file có cả thảy 10 tham số hình thức, bắt đầu từ %0 đến %9
-Trong file bat thì phải ghi dấu % 2 lần ví dụ %%0 %%1...%%9
-%0 ám chỉ tên file bat đang được thực hiện
-%1 ám chỉ tham số đầu vào thứ nhất tương ứng
-%2 ám chỉ tham số đầu vào thứ ba
4. Ta xem xét một ví dụ về tham số hình thức
A:\>COPY CON VANBAN.BAT ECHO %0 MD %1 CD %1 COPY C:\%2.TXT DIR A: A:\>VANBAN TEXT BAOCAO
Ở đây có hai giá trị đầu vào, do vậy file bat sẽ hiểu là gán TEXT vào vị trí %1, BAOCAO vào vị trí %2
tương ứng
Vì thế chương trình sẽ hiểu như sau:
-Hiển thị câu: VANBAN
-Mở thư mục: MD TEXT
-Vào thư mục: CD TEXT
-Chép file BAOCAO.TXT từ ổ đĩa C
-Liệt kê tất cả các file trong đĩa A
5. Ví dụ gọi chính chương trình đang chạy hienthi.bat cho tới vô hạn.
@ECHO OFF echo %~n0 PAUSE call %0 PAUSE