ไวยากรณ์สำหรับการวนรอบ FOR ในแบตช์ไฟล์ Windows คืออะไร
ไวยากรณ์สำหรับการวนรอบ FOR ในแบตช์ไฟล์ Windows คืออะไร
คำตอบ:
FOR %%A IN (list) DO command parameters
รายการ คือรายการขององค์ประกอบใด ๆ คั่นด้วยช่องว่างทั้งเครื่องหมายจุลภาคหรืออัฒภาค
คำสั่ง สามารถเป็นคำสั่งภายในหรือภายนอก, ไฟล์แบทช์หรือแม้กระทั่ง - ใน OS / 2 และ NT - รายการคำสั่ง
พารามิเตอร์ มีพารามิเตอร์บรรทัดคำสั่งสำหรับคำสั่ง ในตัวอย่างนี้คำสั่งจะถูกดำเนินการหนึ่งครั้งสำหรับทุกองค์ประกอบในรายการโดยใช้พารามิเตอร์หากระบุ
พารามิเตอร์ชนิดพิเศษ (หรือคำสั่งคู่) คือ %% A ซึ่งจะถูกแทนที่โดยแต่ละองค์ประกอบจากรายการอย่างต่อเนื่อง
จากFOR ลูป
FOR /L %x IN (1,1,100) DO ...
[ parameters ]
หากคุณต้องการรวมหลายบรรทัดในfor
ลูปของคุณ
หากคุณต้องการทำอะไร x คูณคุณสามารถทำสิ่งนี้:
ตัวอย่าง (x = 200):
FOR /L %%A IN (1,1,200) DO (
ECHO %%A
)
1,1,200
วิธีการ:
ประเภท:
for /?
และคุณจะได้รับข้อความช่วยเหลือหลายหน้า
ทำคำสั่งแบบมีเงื่อนไขหลายครั้ง
ไวยากรณ์-FOR-Files
FOR %%parameter IN (set) DO command
ไวยากรณ์สำหรับไฟล์ที่ราก
FOR /R [[drive:]path] %%parameter IN (set) DO command
ไวยากรณ์-FOR-โฟลเดอร์
FOR /D %%parameter IN (folder_set) DO command
ไวยากรณ์สำหรับรายชื่อของตัวเลข
FOR /L %%parameter IN (start,step,end) DO command
เนื้อหาไวยากรณ์สำหรับไฟล์
FOR /F ["options"] %%parameter IN (filenameset) DO command
หรือ
FOR /F ["options"] %%parameter IN ("Text string to process") DO command
ผลลัพธ์ไวยากรณ์สำหรับคำสั่ง
FOR /F ["options"] %%parameter IN ('command to process') DO command
มัน
%%G
เท่ากับส่วนหนึ่งของข้อมูลนั้นหากคุณกำลังใช้คำสั่งสำหรับที่บรรทัดคำสั่งมากกว่าในโปรแกรมชุดใช้สัญญาณเพียงร้อยละหนึ่ง: แทน%G
%%G
สำหรับพารามิเตอร์
ต้องกำหนดพารามิเตอร์แรกโดยใช้อักขระเดียวเช่นตัวอักษร G
FOR %%G IN
...
ในการวนซ้ำของลูป FOR แต่ละIN ( ....)
ประโยคจะถูกประเมินและ%%G
ตั้งค่าเป็นค่าที่แตกต่างกัน
หากข้อนี้ส่งผลให้มีค่าเดียวดังนั้น %% G จะถูกตั้งค่าเท่ากับค่านั้นและคำสั่งจะดำเนินการ
หากอนุประโยคส่งผลให้มีหลายค่าพารามิเตอร์พิเศษจะถูกกำหนดโดยปริยายเพื่อเก็บไว้แต่ละค่า สิ่งเหล่านี้ถูกกำหนดโดยอัตโนมัติตามลำดับตัวอักษร%%H %%I %%J
... (นิยามพารามิเตอร์โดยนัย)
หากพารามิเตอร์อ้างถึงไฟล์การอ้างอิงตัวแปรที่ปรับปรุงแล้วสามารถใช้เพื่อแยกชื่อไฟล์ / พา ธ / วันที่ / ขนาด
แน่นอนคุณสามารถเลือกตัวอักษรตัวอักษรใด ๆ นอกเหนือ%%G
จาก แต่เป็นตัวเลือกที่ดีเพราะไม่ขัดแย้งกับตัวอักษรรูปแบบชื่อพา ธ ใด ๆ (a, d, f, n, p, s, t, x) และให้การรันตัวอักษรที่ไม่ขัดแย้งกันที่ยาวที่สุดเพื่อใช้เป็นพารามิเตอร์โดยปริยาย .
%a%
ให้ชื่อของแฟ้มปกติหรือไม่ มันยากที่จะช่วยคุณในรูปแบบนี้ อย่าลังเลที่จะถามคำถามใหม่หลังจากที่ได้อ่านวิธีการขอ
So for example in a reference like %%~fG the %%G is the FOR parameter, and the ~f is the Parameter Expansion.
(ที่นี่) [ ss64.com/nt/syntax-args.html ) ขอบคุณคุณ ไชโยเพื่อน
FOR
จะให้ข้อมูลใด ๆ ที่คุณจำเป็นต้องรู้เกี่ยวกับ FOR loops รวมถึงตัวอย่างการใช้งานที่เหมาะสม
ลองรหัสนี้:
@echo off
color 02
set num1=0
set num2=1
set terminator=5
:loop
set /a num1= %num1% + %num2%
if %num1%==%terminator% goto close
goto open
:close
echo %num1%
pause
exit
:open
echo %num1%
goto loop
num1
คือจำนวนที่จะเพิ่มขึ้นและnum2
เป็นค่าที่เพิ่มเข้ามาnum1
และ terminator เป็นค่าที่num1
จะสิ้นสุด คุณสามารถระบุค่าที่แตกต่างกันสำหรับ terminator ในคำสั่งนี้ ( if %num1%==%terminator% goto close
) นี่เป็นนิพจน์บูลีน goto close เป็นกระบวนการถ้าบูลีนเป็นจริงและ goto open เป็นกระบวนการถ้าบูลีนเป็นเท็จ
@echo off
echo.
set /p num1=Enter Prelim:
echo.
set /p num2=Enter Midterm:
echo.
set /p num3=Enter Semi:
echo.
set /p num4=Enter Finals:
echo.
set /a ans=%num1%+%num2%+%num3%+%num4%
set /a avg=%ans%/4
ECHO %avg%
if %avg%>=`95` goto true
:true
echo The two numbers you entered were the same.
echo.
pause
exit
จากFOR /?
เอกสารช่วยเหลือ:
FOR% ตัวแปร IN (set) คำสั่ง DO [คำสั่งพารามิเตอร์]
ตัวแปร% ระบุพารามิเตอร์ที่สามารถแทนที่ตัวอักษรเดียว
(set) ระบุชุดของไฟล์หนึ่งไฟล์ขึ้นไป อาจใช้สัญลักษณ์แทน คำสั่งระบุคำสั่งที่จะดำเนินการสำหรับแต่ละไฟล์
command-parameters
ระบุพารามิเตอร์หรือสวิตช์สำหรับคำสั่งที่ระบุ
หากต้องการใช้คำสั่ง FOR ในโปรแกรมแบตช์ให้ระบุตัวแปร %% แทน
ตัวแปร% ชื่อตัวแปรเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ดังนั้น% i จึงแตกต่าง
จาก% I
หากเปิดใช้งานส่วนขยาย
คำสั่งจะสนับสนุนรูปแบบเพิ่มเติมของคำสั่ง FOR ต่อไปนี้:
FOR / D% ตัวแปร IN (set) คำสั่ง DO [คำสั่งพารามิเตอร์]
If set contains wildcards, then specifies to match against directory
names instead of file names.
FOR / R [เส้นทาง: ไดรฟ์]] ตัวแปร% IN (set) คำสั่ง DO [คำสั่งพารามิเตอร์]
Walks the directory tree rooted at [drive:]path, executing the FOR
statement in each directory of the tree. If no directory
specification is specified after /R then the current directory is
assumed. If set is just a single period (.) character then it
will just enumerate the directory tree.
FOR / L% ตัวแปร IN (เริ่มต้น, ขั้นตอน, สิ้นสุด) คำสั่ง DO [คำสั่งพารามิเตอร์]
The set is a sequence of numbers from start to end, by step amount.
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
generate the sequence (5 4 3 2 1)