方法: 項目リストをコンマ区切りで表示するHow to: Display an Item List Separated with Commas

Microsoft Build EngineMicrosoft Build Engine (MSBuildMSBuild) で項目一覧を使用するとき、項目一覧の内容を読みやすいように表示すると便利な場合があります。When you work with item lists in Microsoft Build EngineMicrosoft Build Engine (MSBuildMSBuild), it is sometimes useful to display the contents of those item lists in a way that is easy to read. あるいは、項目の一覧を特殊な区切り文字列で区切るタスクが与えられることがあります。Or, you might have a task that takes a list of items separated with a special separator string. いずれの場合でも、項目一覧には区切り文字列を指定できます。In both of these cases, you can specify a separator string for an item list.

一覧内の項目をコンマで区切るSeparating Items in a List with Commas

既定では、MSBuildMSBuild はセミコロンを利用して一覧内の項目を区切ります。By default, MSBuildMSBuild uses semicolons to separate items in a list. たとえば、次の値を持つ Message 要素があります。For example, consider a Message element with the following value:

<Message Text="This is my list of TXT files: @(TXTFile)"/>

@(TXTFile) 項目一覧に項目 App1.txt、App2.txt、App3.txt が含まれるとき、メッセージは次のようになります。When the @(TXTFile) item list contains the items App1.txt, App2.txt, and App3.txt, the message is:

This is my list of TXT files: App1.txt;App2.txt;App3.txt

既定の動作を変更する場合、独自の区切りを指定できます。If you want to change the default behavior, you can specify your own separator. 項目一覧区切りを指定するための構文は次のようになります。The syntax for specifying an item list separator is:

@(ItemListName, '<separator>')

区切りは単一の文字か文字列にすることができます。一重引用符で囲む必要があります。The separator can be either a single character or a string and must be enclosed in single quotes.

項目の間にコンマとスペースを挿入するにはTo insert a comma and a space between items

  • 次のような項目表記を使用します。Use item notation similar to the following:

    @(TXTFile, ', ')

Example

この例では、Exec タスクは findstr ツールを実行し、ファイル Phrases.txt から指定のテキスト文字列を探します。In this example, Exec task runs the findstr tool to find specified text strings in the file, Phrases.txt. findstr コマンドでは、リテラル検索文字列が /c: スイッチによって示されます。そのため、項目区切り /c:@(Phrase) 項目一覧の項目間に挿入されます。In the findstr command, literal search strings are indicated by the /c: switch, so the item separator, /c: is inserted between items in the @(Phrase) item list.

この例では、次がこれに相当するコマンドライン コマンドです。For this example, the equivalent command-line command is:

findstr /i /c:hello /c:world /c:msbuild phrases.txt

<Project DefaultTargets = "Find"  
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >  

    <ItemGroup>  
        <Phrase Include="hello"/>  
        <Phrase Include="world"/>  
        <Phrase Include="msbuild"/>  
    </ItemGroup>  

    <Target Name = "Find">  
        <!-- Find some strings in a file -->  
        <Exec Command="findstr /i /c:@(Phrase, ' /c:') phrases.txt"/>  
    </Target>  
</Project>  

関連項目See Also

MSBuild リファレンス MSBuild Reference
項目Items