Sdílet prostřednictvím


Zobrazení seznamu položek oddělených čárkami

Při práci se seznamy položek v modulu Microsoft Build Engine (MSBuild) je někdy užitečné zobrazit obsah těchto seznamů položek způsobem, který je snadno čitelný. Nebo můžete mít úkol, který vezme seznam položek oddělených speciálním oddělovačem. V obou těchto případech můžete zadat řetězec oddělovače seznamu položek.

Oddělení položek v seznamu čárkami

Ve výchozím nastavení nástroj MSBuild používá středníky k oddělení položek v seznamu. Představte si Message například prvek s následující hodnotou:

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

@(TXTFile) Pokud seznam položek obsahuje položky App1.txt, App2.txt a App3.txt, zpráva je:

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

Pokud chcete změnit výchozí chování, můžete zadat vlastní oddělovač. Syntaxe pro zadání oddělovače seznamu položek je:

@(ItemListName, '<separator>')

Oddělovač může být buď jeden znak, nebo řetězec a musí být uzavřený v jednoduchých uvozovkách.

Vložení čárky a mezery mezi položkami

  • Použijte zápis položky podobný následujícímu:

    @(TXTFile, ', ')

Příklad

V tomto příkladu úloha Exec spustí nástroj findstr k vyhledání zadaných textových řetězců v souboru Phrases.txt. V příkazu findstr jsou literály vyhledávací řetězce označeny přepínačem /c, takže oddělovač /c: položek je vložen mezi položky v @(Phrase) seznamu položek.

V tomto příkladu je ekvivalentní příkaz příkazového řádku:

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>