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?


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%
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.