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>