1

I am new in scripting and I'm working with a tool which is exactly like windows cmd. My input text file is :

age=min;age_1D_param_min_64;meas_time =

My batch file reads the lines from this input and splits the lines by “ ; ” then executes a function with the token and age file from the second field and after all parses the output for the third line. in the following you can see my current batch file:

setlocal EnableDelayedExpansion
for /f "tokens=1,2,3* delims=;" %%a in (input.txt) do (
REM create token file
echo.%%a>current.tok

sinoparam -p D:\product\%%b 0x0100001F current.tok> out.txt

for /f %%y in ('findstr /C:"%%c" out.txt ^| sed "s/.*%%c .............. )do SET RESULT=%%y

echo.%%a;%%b;%%c;!RESULT!>>finaloutput.csv
)
GOTO :EOF

Now I have problem with one string in out.txt which is the result of executing my function:

meas_time =31.9999

In my batch file I want to do the following:

  1. Find the value in string dActual_age =31.9999 by findstr/C

  2. If the value is lower than 1000 round it and show the result.

  3. If it's greater than 1000 first divide it by 32 and then round the result.

0

Math in batch files are generally performed with set /A, and set doesn't supply a way to round numbers; it also only handles integer math.

You'll need to find a command-line tool that can do the math you want from the batch script, or switch to a more capable scripting language (for example: PowerShell - Round down to nearest whole number, or VBScript).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.