2013-07-19 27 views
22

私はUnixシェルスクリプトに精通していますが、Windowsスクリプティングでは初めてです。Windowsの文字列を連結する方法forループのバッチファイル?

私はstr1、str2、str3 ... str10を含む文字列のリストを持っています。私はこのようにしたい:

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

文字列をバッチファイルで連結する方法を説明しているスレッドが見つかりました。しかし、それは何とかforループで動作しません。だから私はまだバッチ構文について混乱しています。

+0

[バッチファイルで変数を文字列や変数に連結する方法](http://stackoverflow.com/questions/9349027/how-to-concatenate-variable-with-string-or-variable-in-batch-ファイル) – jeb

答えて

21

あなたはこのようにそれを行うことができます:あなたがいない場合は

@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" } 
21

文字列で、これを試してみてください:

set "var=string1string2string3" 

と文字列変数で:バッチで

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

ヒント: varと= – Monir

+0

@モニールあなたは私の人生を親切に保存しました。 – Clocker