Gewusst wie: Anzeigen einer durch Trennzeichen getrennten Elementauflistung

Aktualisiert: November 2007

Wenn Sie mit Elementlisten in Microsoft Build Engine (MSBuild) arbeiten, ist es zeitweise hilfreich, den Inhalt dieser Elementlisten in einer leicht lesbaren Form anzuzeigen. Möglicherweise verfügen Sie aber auch über eine Aufgabe mit einer Liste von Elementen, die durch ein bestimmtes Trennzeichen getrennt sind. In beiden Fällen können Sie ein Trennzeichen für eine Elementliste festlegen.

Trennen von Elementen in einer Liste mit einem Semikolon

Standardmäßig verwendet MSBuild Semikolons, um Elemente in einer Liste zu trennen. Angenommen, Sie verfügen über ein Message-Element mit folgendem Wert:

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

Wenn die @(TXTFile)-Elementliste die Elemente App1.txt, App2.txt und App3.txt enthält, lautet die Meldung:

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

So trennen Sie Elemente mit einem Semikolon

  • Verwenden Sie eine mit folgendem Beispiel vergleichbare Elementnotation:

    @(TXTFile)

Angeben eines benutzerdefinierten Trennzeichens

Wenn Sie das Standardverhalten ändern möchten, können Sie ein eigenes Trennzeichen eingeben. Die Syntax zum Festlegen eines Trennzeichens für Elementlisten lautet:

@(ItemListName, '<separator>')

Das Trennzeichen kann entweder ein einzelnes Zeichen oder eine Zeichenfolge sein und muss in einfache Anführungszeichen eingeschlossen werden.

So fügen Sie ein Komma und ein Leerzeichen zwischen Elementen ein

  • Verwenden Sie eine mit folgendem Beispiel vergleichbare Elementnotation:

    @(TXTFile, ', ')

Beispiel

In diesem Beispiel wird das Tool findstr von der Aufgabe Exec ausgeführt, um die angegebenen Textzeichenfolgen in der Datei Phrases.txt zu suchen. Im Befehl findstr werden Zeichenfolgen für die wörtliche Suche durch den Schalter /c: angegeben. Folglich wird das Elementtrennzeichen /c: zwischen Elementen in der @(Phrase)-Elementliste eingefügt.

Der entsprechende Befehlszeilenbefehl für dieses Beispiel lautet:

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

<Project DefaultTargets = "Find"
    xmlns="https://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>

Siehe auch

Konzepte

MSBuild-Elemente

Weitere Ressourcen

MSBuild-Referenz