批处理:for循环不起作用

时间:2017-06-09 22:00:57

标签: batch-file for-loop

代码就是这样:

@echo off
set str=abcd
for /L %%i in (1,1,4) do set str=%str%%str%
echo %str%

最后,我希望str成为一个长字符串。但它的价值只是abcdabcd。怎么了?为什么会这样?

1 个答案:

答案 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的特殊变量扩展技巧。