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

Как отключить и включить USB-порт через командную строку?
Пакетный файл-копирование двух новых файлов из одной папки в другую
Пакетное заполнение pdf формы с использованием данных из Excel
Запустив bat файл при запуске от имени администратора в Windows 7
Windows CMD-как переименовать все файлы во всех подпапках в имя родительской папки
Как открыть программу из системного трея через.летучая мышь
Массовое переименование и перемещение файлов
Печать результата Ping в текстовом файле в форме да или нет
пакетный файл для получения частичной lastmodified строки переменной
Добавьте текст в начало и конец каждой строки, используя batch / cmd
команда ffmpeg работает в cmd, но не в пакетном файле
Автоматическая обрезка черных полей отсканированных изображений?
DelayedExpansion & Проблемы Замены Переменных
Вывод Wmic в переменную
Удаление разрывов строк из CSV для правильного импорта Excel

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

Я новичок в скриптинге, и я работаю с инструментом, который точно так же, как 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
источник

1 ответов

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

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

0
отвечен Ƭᴇcʜιᴇ007 2017-05-23 12:41:49
источник

Другие вопросы batch command-line echo script