Como fazer a divisão e o arredondamento dentro da string?

1

Eu sou novo em scripts e estou trabalhando com uma ferramenta que é exatamente como o Windows cmd. Meu arquivo de texto de entrada é:

age=min;age_1D_param_min_64;meas_time =

Meu arquivo de lote lê as linhas dessa entrada e divide as linhas por “; ”, Em seguida, executa uma função com o arquivo token e age do segundo campo e depois de tudo analisa a saída para a terceira linha. A seguir, você pode ver meu arquivo de lote atual:

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

Agora eu tenho problema com uma string em out.txt que é o resultado da execução da minha função:

meas_time =31.9999

No meu arquivo de lote, quero fazer o seguinte:

  1. Encontre o valor na string dActual_age =31.9999 por findstr/C

  2. Se o valor for menor que 1000, arredonde e mostre o resultado.

  3. Se for maior que 1000, primeiro divida-o por 32 e depois arredonde o resultado.

por h.rahmati 04.11.2016 / 15:51

1 resposta

0

A matemática em arquivos em lote geralmente é executada com set /A , e set não fornece uma maneira de números redondos; também lida apenas com matemática inteira.

Você precisará encontrar uma ferramenta de linha de comando que possa fazer a matemática desejada no script em lote ou alternar para uma linguagem de script mais capaz (por exemplo: PowerShell - Arredondar para o número inteiro mais próximo ou VBScript ).

    
por 04.11.2016 / 16:05