Pergunta

Devo admitir que sempre esqueci as complexidades sintáticas dos padrões de nomenclatura de Nant (por exemplo,aqueles usados ​​em conjuntos de arquivos).A coisa de asterisco duplo/asterisco único parece ser muito esquecível em minha mente.

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

Foi útil?

Solução

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 em todos os níveis de diretório
  • um ponto de interrogação (?) corresponde exatamente a um caractere em um nome de caminho

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

Digamos que você tenha os arquivos:

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

Depois os padrões:

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

Outras dicas

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

  • src** partidas 2, 3 e 4
  • **.ccorresponde a 2, 3 e 4
  • **ar.* partidas 1 e 2
  • **/bartest.c/** corresponde 4
  • src/ba?.c/** jogos 2 e 3

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

Confira a Referência nant.Os padrões do conjunto de arquivos são:

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

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top