我熟悉Unix shell脚本,但对Windows脚本新手很熟悉。
我有一个包含str1,str2,str3 ... str10的字符串列表。我想这样做:
for string in string_list
do
var = string+"xyz"
svn co var
end
我确实找到了一些描述如何在批处理文件中连接字符串的线程。但它在某种程度上不适用于循环。所以我仍然对批处理语法感到困惑。
答案 0 :(得分:35)
尝试使用字符串:
set "var=string1string2string3"
并使用字符串变量:
set "var=%string1%%string2%%string3%"
答案 1 :(得分:33)
批处理你可以这样做:
@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"
然而,就像C.B.我尽可能选择PowerShell:
$string_list = 'str1', 'str2', 'str3', ... 'str10'
$string_list | ForEach-Object {
$var = "${_}xyz" # alternatively: $var = $_ + 'xyz'
svn co $var
}
同样,如果你在循环中的其他地方不需要$var
,这可以简化:
$string_list = 'str1', 'str2', 'str3', ... 'str10'
$string_list | ForEach-Object { svn co "${_}xyz" }
答案 2 :(得分:6)
一个非常简单的例子:
SET a=Hello
SET b=World
SET c=%a% %b%!
echo %c%
结果应为:
Hello World!