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:
Znajdź wartość w ciągu
dActual_age =31.9999
wedługfindstr/C
Jeśli wartość jest mniejsza niż 1000, zaokrąglij ją i pokaż wynik.
Jeśli jest większy niż 1000, najpierw podziel go przez 32, a następnie zaokrąglij wynik.
źródło