วิธีใช้ถ้าคำสั่งในไฟล์แบตช์


1

ฉันมีสิ่งต่อไปนี้สำหรับลูปในไฟล์แบตช์

for /f %%y in ('findstr /C:"%%c" out.txt ^| sed "s/.*%%c \([^>]*\).*/\1/i"') do SET RESULT=%%y
echo.%%a;%%b;%%c;!RESULT!>>D:\outputTA.txt

ตัวแปรของฉันใน for loop คือ %%y และฉันต้องการใช้ถ้าคำสั่งในทาง:

if my variable > 1000 then

set Result to round my variable / 32

else 

set Result to round my variable

ไม่มีใครรู้ว่าฉันสามารถทำได้ในไฟล์ Batch?


1
คำแนะนำ: help if, help set.
DavidPostill

คำตอบ:


1

นี่คือวิธีที่ฉันแก้ปัญหา:

for /f "tokens=1,2 delims=." %%A in ("!RESULT!") do (
if %%A LSS 1000 (
    set int=%%A
    if not "%%B"=="" (
        set decimal=%%B
        set decimal=!decimal:~0,1!
        if !decimal! GEQ 5 (
            set /a int+=1
        )
    )
) else (
    if %%A GTR 1000 (
        set /a int=%%A/32
    set /a int+=1
    )
    )
   echo !int!
  echo.%%a;%%b;%%c;!int!>>D:\outputTA.txt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.