it-swarm-vi.tech

Đối với Vòng lặp đếm từ 1 đến n trong tập lệnh bat windows

Tôi cần chạy lệnh windows n lần trong tệp script bat. Tôi biết cách thực hiện điều này bằng nhiều ngôn ngữ lập trình khác nhau nhưng không thể quản lý để có được nó ngay trên dòng lệnh windows :

Tôi sẽ mong đợi một cái gì đó giống như

for(int i = 0; i < 100; i++) {
   // do something
}

hoặc thậm chí điều này (mặc dù không hoàn toàn nghiêm túc)

1.upto(100, {
   // do something
}) 

Cảm ơn!

--- ([~ # ~] chỉnh sửa [~ # ~]

Tôi có thể viết một chương trình bằng Java, Perl, c hoặc bất cứ thứ gì sẽ tạo ra một tập lệnh bat trông như thế này

for %%N in (1 2 3 4 5 6 7 8 9 10 11 12) do echo %%N

và như thế. Hoặc thậm chí "tốt hơn":

echo 1
echo 2
echo 3
echo 4
echo 5
echo 6
echo 7
echo 8
echo 9
echo 10
echo 11
echo 12

và sau đó thực thi nó ... Nhưng điều cần làm là tôi cần một cách ngắn gọn để chỉ định một phạm vi số để lặp qua bên trong tập lệnh.

Cảm ơn!

25
raoulsson

Bạn có thể làm điều tương tự như thế này:

ECHO Start of Loop

FOR /L %i IN (1,1,5) DO (
  ECHO %i
)

1,1,5 được giải mã là:

(start,step,end)

Cũng lưu ý, nếu bạn nhúng tệp này vào tệp bó, bạn sẽ cần sử dụng dấu hai phần trăm (%%) để tiền tố các biến của mình, nếu không, trình thông dịch lệnh sẽ cố gắng đánh giá biến% i trước khi chạy vòng lặp.

46
Goyuix

Cú pháp là

FOR %%A IN (1 2 3) DO ECHO %%A

Bài viết hay tại đây và XP chi tiết cụ thể tại đây

9
Andy

Trực tiếp từ dòng lệnh:

for /L %n in (1,1,100) do @echo %n

Sử dụng tệp bó:

@echo off
for /L %%n in (1,1,100) do echo %%n

Hiển thị:

1
2
3
...
100
7
fmoraesjr