web-dev-qa-db-ja.com

Nant / Ant命名パターンを使用するにはどうすればよいですか?

私は、Nantの命名パターン(例えば、ファイルセットで使用されているもの)の構文上の内在性を常に忘れていたことを認めなければなりません。二重アスタリスク/単一アスタリスクは、私の頭の中では非常に忘れがたいようです。

誰かが命名パターンの決定的なガイドを提供できますか?

89
berko

ルールは次のとおりです。

  • 単一の星(*)は0個以上の文字に一致しますパス名内
  • 二重星(**)はゼロ個以上の文字に一致しますディレクトリレベル全体
  • 疑問符(?)は、パス名内の1文字に一致します

別の考え方としては、二重星(**)はスラッシュ(/)に一致しますが、単一星(*)は一致しません。

ファイルがあるとしましょう:

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

次に、パターン:

  • *.cは何にも一致しません(現在のディレクトリに.cファイルはありません)
  • src/*.c 2と3に一致
  • */*.c 2と3に一致(*は1つのレベルにのみ一致するため)
  • **/*.cは2、3、および4に一致します(**は任意の数のレベルに一致するため)
  • bar.*一致1
  • **/bar.* 1と2に一致
  • **/bar*.*は、1、2、および4に一致します
  • src/ba?.cは2と3に一致します
224
benzado

ここでは、ドキュメントからそれほど明白ではないいくつかの追加のパターンマッチを示します。 benzadoの回答のサンプルファイルについて、NAntを使用してテストしました。

  • src** 2、3、および4に一致
  • **.cは2、3、および4と一致します
  • **ar.* 1と2に一致
  • **/bartest.c/**マッチ4
  • src/ba?.c/** 2と3に一致
14
sparkplug

二重アスタリスク(**)は一致するフォルダー名に関連付けられていますが、単一記号のアスタリスク(* = multi characters)と疑問符(? = single character)は、ファイル名を一致させるために使用されます。

Nant reference を確認してください。ファイルセットのパターンは次のとおりです。

「*」はゼロ個以上の文字に一致します。 * .cs
'?' 1文字に一致します(例: ?.cs

また、「**」はディレクトリツリーと一致します。 src/**/*。csは、srcのサブディレクトリ内のすべてのcsファイルを検索します。

3
Andy Whitfield