Bagaimana melakukan pembagian dan pembulatan dalam string?


1

Saya baru dalam scripting dan saya bekerja dengan alat yang persis seperti windows cmd. File teks input saya adalah:

age=min;age_1D_param_min_64;meas_time =

File batch saya membaca baris dari input ini dan membagi baris dengan “; ”Lalu jalankan fungsi dengan token dan file usia dari bidang kedua dan setelah semua mem-parsing output untuk baris ketiga. berikut ini Anda dapat melihat file batch saya saat ini:

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

Sekarang saya punya masalah dengan satu string di out.txt yang merupakan hasil dari mengeksekusi fungsi saya:

meas_time =31.9999

Dalam file batch saya, saya ingin melakukan hal berikut:

  1. Temukan nilai dalam string dActual_age =31.9999denganfindstr/C

  2. Jika nilainya lebih rendah dari 1000, bulatkan dan perlihatkan hasilnya.

  3. Jika lebih besar dari 1000, pertama bagi dengan 32 dan kemudian bulatkan hasilnya.

Jawaban:


0

Matematika dalam file batch umumnya dilakukan dengan set /A, dan settidak menyediakan cara untuk membulatkan angka; itu juga hanya menangani bilangan bulat matematika.

Anda harus menemukan alat baris perintah yang dapat melakukan perhitungan matematika yang Anda inginkan dari skrip batch, atau beralih ke bahasa skrip yang lebih mampu (misalnya: PowerShell - Membulatkan ke bilangan bulat terdekat , atau VBScript ).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.