Aracılığıyla paylaş


Nasıl yapılır: bir öğe listesi virgülle ayrılmış olarak görüntüleme

Madde ile çalışırken listeler Microsoft Build Engine (MSBuild), bazen bu öğe listeleri içeriğini okumak kolay bir şekilde görüntülemek yararlıdır.Ya da özel Ayırıcı dize ile ayrılmış öğeler listesini alır bir görev olabilir.Bu gibi durumlarda her ikisinde bir öğe listesi için ayırıcı dize belirtebilirsiniz.

Bir listedeki öğelerin virgül ile ayırarak

Varsayılan olarak, MSBuild bir listedeki öğelere ayırmak için noktalı virgül kullanır.Örneğin, bir Message öğesi aşağıdaki değere sahip:

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

Zaman @(TXTFile) ileti, öğe listesi App1.txt, App2.txt ve App3.txt öğelerini içerir:

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

Varsayılan davranışı değiştirmek isterseniz, kendi ayırıcı belirtebilirsiniz.Bir öğeyi liste ayırıcısını belirtmek için sözdizimi şöyledir:

@(ItemListName, '<separator>')

Ayırıcı tek bir karakteri veya dize olabilir ve tek tırnak işaretleri içine alınması gerekir.

Virgül ve öğeler arasına boşluk eklemek için

  • Kullanımı madde gösterim aşağıdakine benzer:

    @(TXTFile, ', ')

Örnek

Bu örnekte, Exec görev Phrases.txt dosya içindeki belirli metin dizelerini bulmak için findstr aracı çalışır.Findstr komutu ile bire bir arama dizeleri gösterilen /c: geçmek, bunu madde ayırıcı /c: öğeler arasına eklenen @(Phrase) madde listesi.

Bu örnekte, eşdeğer komut satırı komut şöyledir:

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>

Ayrıca bkz.

Kavramlar

MSBuild öğeleri

Diğer Kaynaklar

MSBuild başvurusu