如何在Windowsbatch file中连接stringfor循环?

我熟悉Unix shell脚本,但是对于windows脚本来说是新的。

我有一个包含str1,str2,str3 … str10的string列表。 我想这样做:

for string in string_list do var = string+"xyz" svn co var end 

我发现一些线程描述如何在batch file中连接string。 但它以某种方式不适用于循环。 所以我仍然对批处理语法感到困惑。

批量你可以这样做:

 @echo off setlocal EnableDelayedExpansion set "string_list=str1 str2 str3 ... str10" for %%s in (%string_list%) do ( set "var=%%sxyz" svn co "!var!" ) 

如果你不需要变量!var! 在循环的其他地方,你可以简化为

 @echo off setlocal set "string_list=str1 str2 str3 ... str10" for %%s in (%string_list%) do svn co "%%sxyz" 

不过,就像CB一样,如果可能的话,我更喜欢PowerShell:

 $string_list = 'str1', 'str2', 'str3', ... 'str10' $string_list | % { $var = "${_}xyz" # alternatively: $var = $_ + 'xyz' svn co $var } 

同样,如果你在循环的其他地方不需要$var ,这可以被简化:

 $string_list = 'str1', 'str2', 'str3', ... 'str10' $string_list | % { svn co "${_}xyz" } 

试试这个,用字符串:

 set "var=string1string2string3" 

和字符串变量:

 set "var=%string1%%string2%%string3%"