0
代碼是這樣的:批次:for循環不工作
@echo off
set str=abcd
for /L %%i in (1,1,4) do set str=%str%%str%
echo %str%
最後,我想STR是一個很長的字符串。但它的價值只有abcdabcd。哪裏不對?這是爲什麼發生?
代碼是這樣的:批次:for循環不工作
@echo off
set str=abcd
for /L %%i in (1,1,4) do set str=%str%%str%
echo %str%
最後,我想STR是一個很長的字符串。但它的價值只有abcdabcd。哪裏不對?這是爲什麼發生?
@Barış,在詢問重複問題之前請使用搜索欄。
在腳本中,你將需要delayedexpansion
,啓動它,使用setlocal enabledelayedexpansion
。
@echo off
setlocal enabledelayedexpansion
set str=abcd
for /L %%i in (1,1,4) do set str=!str!!str!
echo %str%
通知%str%
成爲!str!
(!意味着擴大變量在命令運行時,不逐步時間。)
這樣做的另一種方式是通過@JosefZ
for /L %%i in (1,1,4) do call set str=%%str%%%%str%%
提到這使用call
的特殊變量擴展技巧。
您需要[延期擴展](https://ss64.com/nt/delayedexpansion.html) – npocmaka
'for/L %% i in(1,1,4)do call set str = %% str %% %% str %%'應該做的伎倆,無論延遲擴展啓用/禁用。 – JosefZ