Как сделать деление и округление внутри строки?

537
h.rahmati

Я новичок в сценариях, и я работаю с инструментом, который точно так же, как Windows CMD. Мой входной текстовый файл:

age=min;age_1D_param_min_64;meas_time = 

Мой пакетный файл читает строки из этого ввода и разбивает строки на «; ”Затем выполняет функцию с файлом токена и возрастом из второго поля и после всего анализирует выходные данные для третьей строки. в следующем вы можете увидеть мой текущий командный файл:

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 

Теперь у меня проблема с одной строкой в ​​out.txt, которая является результатом выполнения моей функции:

meas_time =31.9999 

В моем командном файле я хочу сделать следующее:

  1. Найти значение в строке dActual_age =31.9999поfindstr/C

  2. Если значение меньше 1000, округлите его и покажите результат.

  3. Если оно больше 1000, сначала разделите его на 32, а затем округлите результат.

1

1 ответ на вопрос

0
Ƭᴇcʜιᴇ007

Математика в пакетных файлах, как правило, выполняется с set /A, и setне обеспечивает способ округления чисел; он также обрабатывает только целочисленную математику.

Вам нужно будет найти инструмент командной строки, который сможет выполнить математические операции из пакетного сценария или переключиться на более мощный язык сценариев (например: PowerShell - округление до ближайшего целого числа или VBScript ).

Похожие вопросы