Je connais bien les scripts Unix Shell, mais je ne connais pas encore les scripts Windows.
J'ai une liste de chaînes contenant str1, str2, str3 ... str10. Je veux faire comme ça:
for string in string_list
do
var = string+"xyz"
svn co var
end
J'ai trouvé un fil décrivant comment concaténer une chaîne dans un fichier batch. Mais cela ne fonctionne pas dans la boucle. Donc, je suis toujours déroutant au sujet de la syntaxe de lot.
En lot, vous pouvez le faire comme ceci:
@echo off
setlocal EnableDelayedExpansion
set "string_list=str1 str2 str3 ... str10"
for %%s in (%string_list%) do (
set "var=%%sxyz"
svn co "!var!"
)
Si vous n'avez pas besoin de la variable !var!
ailleurs dans la boucle, vous pourriez simplifier cela
@echo off
setlocal
set "string_list=str1 str2 str3 ... str10"
for %%s in (%string_list%) do svn co "%%sxyz"
Cependant, comme CB, je préférerais PowerShell dans la mesure du possible:
$string_list = 'str1', 'str2', 'str3', ... 'str10'
$string_list | ForEach-Object {
$var = "${_}xyz" # alternatively: $var = $_ + 'xyz'
svn co $var
}
Encore une fois, cela pourrait être simplifié si vous n’avez pas besoin de $var
ailleurs dans la boucle:
$string_list = 'str1', 'str2', 'str3', ... 'str10'
$string_list | ForEach-Object { svn co "${_}xyz" }
Essayez ceci, avec des chaînes:
set "var=string1string2string3"
et avec des variables de chaîne:
set "var=%string1%%string2%%string3%"