SET BATCH tidak dapat menggunakan operator bagi

1

Saya tidak dapat membagi menggunakan operator membagi yang disediakan dalam perintah SET.

SET / A 216/18

SET / A div = 216/18

ECHO% div%

Meskipun ini harus bekerja dan itu ada di jendela command prompt tetapi ketika digunakan melalui skrip batch itu memberikan output kosong.

seperti

ECHO aktif.

Apa yang salah?

Gen1n
sumber
1
Apa artinya kosong? Bagi saya, skrip berfungsi.
Christian Wörz
Kosong karena tidak ada output atau jika saya mengarahkan output ke file teks maka itu membuat file teks kosong. Saya juga setuju bahwa itu harus bekerja karena ini adalah sintaks dasar tetapi tidak dan hanya bekerja di jendela cmd. Saya menggunakan "Windows 7 Professional".
Gen1n
Sudahkah Anda menambahkan "Jeda"? Saya telah menulis kode di notepad ++ dan berfungsi sebagai skrip kelelawar.
Christian Wörz
Bekerja untuk saya di jendela command prompt.
martineau
File testbat.bat CD C:\DeleteLater SET /A Div=216/3 ECHO /3 %Div% >> testbat.txt File testbat.txt/3 72
BillR

Jawaban:

0

Ini bisa terjadi jika Anda extenstionsdinonaktifkan. Anda dapat memeriksa setlocal /?dan cmd /?untuk informasi lebih lanjut tentang extensions.

Tetapi yang set /?ditentukan:

If Command Extensions are enabled SET changes as follows:  
...
Two new switches have been added to the SET command:  
  SET /A expression  
  SET /P variable=[promptString]

Jadi tanpa extensionsitu /Atidak bekerja.

Anda dapat menambahkan setlocal-line ke atas batchfile Anda:

setlocal enableextensions enabledelayedexpansion
SET /A 216/18
SET /A div=216/18
ECHO %div%
Rik
sumber