it-swarm-pt.tech

Como uso os padrões de nomeação Nant / Ant?

Eu tenho que admitir que sempre esqueci as intratações sintáticas dos padrões de nomenclatura para Nant (por exemplo, aqueles usados ​​em conjuntos de arquivos). O asterisco duplo/único asterisco parece muito esquecível em minha mente.

Alguém pode fornecer um guia definitivo para os padrões de nomenclatura?

89
berko

As regras são:

  • uma única estrela (*) corresponde a zero ou mais caracteres dentro de um nome de caminho
  • uma estrela dupla (**) corresponde a zero ou mais caracteres nos níveis de diretório
  • um ponto de interrogação (?) corresponde exatamente a um caractere no nome de um caminho

Outra maneira de pensar sobre isso é a estrela dupla (**) corresponde à barra (/), mas a estrela única (*) não.

Digamos que você tenha os arquivos:

  1. bar.txt
  2. src/bar.c
  3. src/baz.c
  4. src/test/bartest.c

Então os padrões:

  • *.c Não corresponde a nada (não há arquivos .c no diretório atual)
  • src/*.c Corresponde a 2 e 3
  • */*.c Corresponde a 2 e 3 (porque * corresponde apenas a um nível)
  • **/*.c Corresponde a 2, 3 e 4 (porque ** corresponde a qualquer número de níveis)
  • bar.* Corresponde a 1
  • **/bar.* Combina 1 e 2
  • **/bar*.* corresponde a 1, 2 e 4
  • src/ba?.c corresponde a 2 e 3
224
benzado

Aqui estão algumas correspondências extras de padrões que não são tão óbvias na documentação. Testado usando NAnt para os arquivos de exemplo na resposta do benzado:

  • src** Corresponde a 2, 3 e 4
  • **.c Corresponde a 2, 3 e 4
  • **ar.* Combina 1 e 2
  • **/bartest.c/** Corresponde a 4
  • src/ba?.c/** Corresponde a 2 e 3
14
sparkplug

Asteriscos duplos (**) estão associados à correspondência dos nomes das pastas, enquanto os símbolos únicos asterisco (* = multi characters), bem como o ponto de interrogação (? = single character) são usados ​​para corresponder aos nomes dos arquivos.

4
Aditya Kumar Shrivastava

Confira o referência Nant . Os padrões do conjunto de arquivos são:

'*' corresponde a zero ou mais caracteres, por exemplo * .cs
'?' corresponde a um caractere, por exemplo ? .cs

E '**' corresponde a uma árvore de diretórios, por exemplo src/**/*. cs encontrará todos os arquivos cs em qualquer subdiretório src.

3
Andy Whitfield