1 votos

cómo hacer la división y el redondeo dentro de la cadena?

Soy nuevo en secuencias de comandos y estoy trabajando con una herramienta que es exactamente igual a la de windows cmd. Mi archivo de texto de entrada es :

age=min;age_1D_param_min_64;meas_time =

Mi archivo de proceso por lotes lee las líneas de esta entrada y divide las líneas por";", a continuación, se ejecuta una función con el token y la edad de archivo a partir de la segunda campo y después de todo analiza la salida de la tercera línea. en el siguiente se puede ver mi actual archivo por lotes:

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

ahora tengo un problema con una cadena en out.txt que es el resultado de la ejecución de la función:

meas_time =31.9999

en mi archivo de proceso por lotes que yo quiero hacer lo siguiente:

1.encontrar el valor en la cadena de dActual_age =31.9999 por findstr/C

  1. si el valor es inferior a 1000 ronda y mostrar el resultado

  2. si es mayor de 1000 divide en 32 y luego redondear el resultado

¿Alguien sabe cómo puedo hacer esto ? gracias por la ayuda! HOda

0voto

Brandon Puntos 2580

La matemática en los archivos de proceso por lotes se realiza generalmente con set /Ay set no proporciona una forma de números redondos; asimismo, sólo se encarga de las operaciones con números enteros.

Usted tendrá que encontrar una herramienta de línea de comandos que puede hacer los cálculos que desee de la secuencia de comandos por lotes, o cambiar a una más capaz lenguaje de secuencias de comandos (por ejemplo: PowerShell - redondee al número entero más cercano, o VBScript).

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: