代码就是这样:
@echo off
set str=abcd
for /L %%i in (1,1,4) do set str=%str%%str%
echo %str%
最后,我希望str成为一个长字符串。但它的价值只是abcdabcd。怎么了?为什么会这样?
答案 0 :(得分:0)
@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
的特殊变量扩展技巧。