Jak wykonać podział i zaokrąglanie w ciągu?

1

Jestem nowy w skryptowaniu i pracuję z narzędziem, które jest dokładnie takie jak Windows cmd. Mój wejściowy plik tekstowy to:

age=min;age_1D_param_min_64;meas_time =

Mój plik wsadowy odczytuje wiersze z tego wejścia i dzieli je według „; ”Następnie wykonuje funkcję z plikiem tokena i wieku z drugiego pola i ostatecznie analizuje dane wyjściowe dla trzeciego wiersza. poniżej możesz zobaczyć mój bieżący plik wsadowy:

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

Teraz mam problem z jednym ciągiem w out.txt, który jest wynikiem wykonania mojej funkcji:

meas_time =31.9999

W moim pliku wsadowym chcę wykonać następujące czynności:

  1. Znajdź wartość w ciągu dActual_age =31.9999wedługfindstr/C

  2. Jeśli wartość jest mniejsza niż 1000, zaokrąglij ją i pokaż wynik.

  3. Jeśli jest większy niż 1000, najpierw podziel go przez 32, a następnie zaokrąglij wynik.

h.rahmati
źródło

Odpowiedzi:

0

Matematyka w plikach wsadowych jest zwykle wykonywana przy użyciu set /Ai setnie zapewnia sposobu na zaokrąglanie liczb; obsługuje również matematykę całkowitą.

Musisz znaleźć narzędzie wiersza polecenia, które może wykonać matematykę, którą chcesz, ze skryptu wsadowego lub przełączyć na bardziej wydajny język skryptowy (na przykład: PowerShell - Zaokrąglaj w dół do najbliższej liczby całkowitej lub VBScript ).

Ƭᴇcʜιᴇ007
źródło