<p class="wp-block-paragraph">éåéå¸ï¼é 便çåçè¨ï¼è¥æé¯èª¤è«ä¸åææã</p>



<!--more-->



<p class="wp-block-paragraph">Windows batchå¨è®æ¸çèçé輯ä¸èæå常ç¨çç¨å¼èªè¨åå¨ä¸äºè½å·®ï¼<br>æå¸¸è¦çæ¯å¨èçè¿´ååé£åçæåï¼<br>æåå çä¸åç°¡å®çè¿´åç¨å¼ç¯ä¾ï¼<br>以ä¸è¿´åç¯ä¾åèThe Blue Nowhereç<a href="https://bluenowhere334.blogspot.com/2018/06/batch-enabledelayedexpansion.html)æç« ï¼" title="">æç« </a>ï¼</p>



<pre class="wp-block-preformatted">Example:
set var=0
for %%a in (1 1 1 1 1) do (
 set /a var+=%%a
 echo %var%
)
echo %var%</pre>



<pre class="wp-block-preformatted">Output:<br>0<br>0<br>0<br>0<br>0<br>5</pre>



<p class="wp-block-paragraph">æç §ç¨å¼éè¼¯ï¼æåèªçºforè¿´åè£é¢echoåºä¾çvarå¼æè©²éå¢ï¼ä½æ¯å¯¦éä¸å»è¼¸åº0ã<br>å¨è¿´åçµæå¾å次輸åºvarå¼ï¼å»çå°varå¼æè¢«æ£ç¢ºçéå¢å°5ã<br>鿝å çºBatchè®å ¥forè¿´åææç´æ¥å°è®æ¸å¼å å ¨é¨å¡«å ¥ï¼<br>æä»¥å¯¦éä¸Batchèªç¥forè¿´å裡é¢ç&#8221;echo %var%&#8221;å¨è®å ¥æå°±æè¢«çè§£æ&#8221;echo 0&#8243;ã</p>



<p class="wp-block-paragraph">çºäºé¿å éååé¡ï¼æåå°±éè¦ç¨å°å»¶é²è®æ¸å±é(EnableDelayedExpansion)ã<br>ééå¨ç¨å¼çéé å å ¥setlocal EnableDelayedExpansionèªå¥ï¼<br>æåå¯ä»¥ä½¿ç¨é©åè(!)å代ç¾åæ¯(%)便¨ç¤ºè®æ¸ï¼<br>é©åèæ¨ç¤ºçè®æ¸å°±æè¢«å»¶é²å±éï¼</p>



<pre class="wp-block-preformatted">Example:
setlocal EnableDelayedExpansion
set var=0
for %%a in (1 1 1 1 1) do (
 set /a var+=%%a
 echo !var!
)
echo %var%</pre>



<pre class="wp-block-preformatted">Output:<br>1<br>2<br>3<br>4<br>5<br>5</pre>



<p class="wp-block-paragraph">é裡ç&#8221;echo !var!&#8221;å°±è½å¤ 被Batchçè§£ææ¯æ¬¡å·è¡å°çæååæ æåè®æ¸å¼äºï¼</p>



<p class="wp-block-paragraph">å¦å¤ä¸å常è¦çæç¨å ´æ¯æ¯é£åï¼</p>



<pre class="wp-block-preformatted">Example:<br>set num=1;<br>set list[%num%]=2;<br>echo num=%list[%num%]%</pre>



<pre class="wp-block-preformatted">Output:<br>num=num</pre>



<p class="wp-block-paragraph">çèµ·ä¾Batchæ&#8221;%list[%&#8221;å&#8221;%]%&#8221;çè§£æè®æ¸äºï¼<br>æä»¥é裡éè¦å¦ä¸ç¨®ç¬¦èä¾èç¾åèååéï¼<br>æä»¥æåå¯ä»¥æ¹æé樣ï¼</p>



<pre class="wp-block-preformatted">Example:<br>setlocal EnableDelayEdexpansion<br>set num=1;<br>set list[%num%]=2;<br>echo num=!list[%num%]!</pre>



<pre class="wp-block-preformatted">Output:<br>num=2</pre>



<p class="wp-block-paragraph">å¨&#8221;echo num=!list[%num%]!&#8221;ä¸ï¼<br>Batchè®å ¥ææå çè§£æ&#8221;echo num=!list[1]!&#8221;ï¼<br>åå»¶é²å±élist[1]çå¼ï¼<br>鿍£å°±å¯ä»¥æ£ç¢ºè¼¸åºäºï½</p>

[Batch] 延遲變數DelayedExpansion

