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

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

age=min;age_1D_param_min_64;meas_time =

мой пакетный файл читает строки из этого ввода и разбивает строки на";", затем выполняет функцию с файлом token и age из второго поля и после этого анализирует вывод для третьей строки.
ниже вы можете увидеть мой текущий пакетный файл:

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 by findstr/C

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

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

5
задан karel
17.12.2022 19:39 Количество просмотров материала 2782
Распечатать страницу

1 ответ

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

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

0
отвечен Ƭᴇcʜιᴇ007 2022-12-19 03:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх