Condividi tramite


Procedura: visualizzare un elenco di elementi separati da virgole

Quando si utilizzano elenchi di elementi in Microsoft Build Engine (MSBuild), può risultare utile visualizzarne i contenuti in modo da agevolare la lettura. Potrebbe inoltre essere presente un'attività che dispone di un elenco di elementi separati da una speciale stringa di separazione. In entrambi i casi, per tali elenchi è possibile specificare una stringa di separazione.

Separazione degli elementi di un elenco con virgole

Per impostazione predefinita, in MSBuild vengono utilizzati punti e virgola per separare gli elementi in un elenco. Si consideri, ad esempio, un elemento Message con il valore seguente:

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

Se l'elenco di elementi @(TXTFile) contiene gli elementi App1.txt, App2.txt e App3.txt, il messaggio sarà:

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

Se si desidera modificare il comportamento predefinito, è possibile specificare un separatore personalizzato. La sintassi utilizzata per specificare il separatore di un elenco di elementi è la seguente:

@(ItemListName, '<separator>')

Il separatore può essere un unico carattere o una stringa e deve essere racchiuso tra virgolette singole.

Per inserire una virgola e uno spazio tra gli elementi

  • Utilizzare una notazione di elemento simile alla seguente:

    @(TXTFile, ', ')

Esempio

In questo esempio, l'attività Exec esegue lo strumento findstr per trovare stringhe di testo specificate nel file Phrases.txt. Nel comando findstr le stringhe di ricerca letterali vengono indicate dall'opzione /c:, pertanto il separatore di elementi /c: viene inserito tra gli elementi nell'elenco di elementi @(Phrase).

In questo caso il comando della riga di comando equivalente è il seguente:

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>

Vedere anche

Concetti

Elementi MSBuild

Altre risorse

Riferimenti a MSBuild