एसईटी/ए कथन में उपयोग करने के लिए पर्यावरण चर को विस्तारित करने की आवश्यकता नहीं है। लेकिन चर के लिए विस्तार किया जाना चाहिए।
इसके अलावा, यदि आपकी गणना भी काम करती है, तो ईसीएचओ असफल हो जाएगा क्योंकि जब कोई बयान पार्स किया जाता है तो प्रतिशत विस्तार होता है, और पूरे निर्माण के लिए एक बार में पार्स किया जाता है। तो लूप निष्पादित होने से पहले% x% का मान वैल्यू होगा जैसा यह अस्तित्व में था। लूप के भीतर सेट किया गया मान प्राप्त करने के लिए आपको देरी से विस्तार का उपयोग करना चाहिए।
इसके अलावा, आपको असाइनमेंट ऑपरेटर से पहले स्थान को हटा देना चाहिए। आप नाम में एक स्थान के साथ एक चर घोषित कर रहे हैं।
@echo off
setlocal enableDelayedExpansion
for %%A in (100 200 300 400 500) do (
set n=%%A
REM a FOR variable must be expanded
set /a x=%%A/25
REM an environment variable need not be expanded
set /a y=n/25
REM variables that were set within a block must be expanded using delayed expansion
echo x=!x!, y=!y!
REM another technique is to use CALL with doubled percents, but it is slower and less reliable
call echo x=%%x%%, y=%%y%%
)
डॉस में लूप और गणित की गणना क्षमता नहीं है। केवल विंडोज सीएमडी करता है। [वे पूरी तरह से अलग हैं] (http://superuser.com/q/451432/241386) –