ฉันจะใช้รูปแบบการตั้งชื่อ Nant / Ant ได้อย่างไร?


99

ฉันต้องยอมรับว่าฉันลืมความซับซ้อนของรูปแบบการตั้งชื่อสำหรับ Nant (เช่นที่ใช้ในชุดไฟล์) เครื่องหมายดอกจันคู่ / ดอกจันเดี่ยวดูเหมือนจะเป็นสิ่งที่ลืมไม่ลงในความคิดของฉัน

ใครสามารถให้คำแนะนำที่ชัดเจนเกี่ยวกับรูปแบบการตั้งชื่อได้หรือไม่?


3
ฉันได้อ่านข้อมูลอ้างอิง และอ่านซ้ำ. และอ่านซ้ำ. ฉันแค่คิดว่ามันมีตัวอย่างที่น่าสงสารจริงๆและไม่ชัดเจนในข้อความของมัน
berko

บางทีคุณสามารถระบุสิ่งที่คุณพยายามจะบรรลุได้อย่างแน่นอนและใครบางคนสามารถให้คำตอบที่ดีกว่าได้
Andy Whitfield

คำตอบ:


240

กฎคือ:

  • ดาวเดียว (*) จับคู่อักขระศูนย์หรือมากกว่าภายในชื่อพา ธ
  • ดาวคู่ (**) จับคู่อักขระศูนย์หรือมากกว่าในระดับไดเรกทอรี
  • เครื่องหมายคำถาม (?) จะจับคู่อักขระหนึ่งตัวภายในชื่อพา ธ

อีกวิธีหนึ่งในการคิดก็คือ double star (**) ตรงกับ slash (/) แต่ single star (*) ไม่มี

สมมติว่าคุณมีไฟล์:

  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 (เพราะ * ตรงเพียงระดับเดียว)
  • **/*.c       จับคู่ 2, 3 และ 4 (เพราะ ** ตรงกับจำนวนระดับใดก็ได้)
  • bar.*         ตรงกับ 1
  • **/bar.*   ตรงกับ 1 และ 2
  • **/bar*.* ตรงกับ 1, 2 และ 4
  • src/ba?.c การแข่งขัน 2 และ 3    

5
ฉันคิดว่านี่เป็นคำอธิบายที่ดีกว่าการอ้างอิงของ Nant ไชโย!
berko

1
src / * / ** ตรงกับอะไร? ฉันคาดหวังว่ามันจะเป็น 4 แต่ประสบการณ์ของฉันกับ maven ดูเหมือนจะบ่งบอกว่าคุณจับคู่ไฟล์ในโฟลเดอร์ใด ๆ ที่คุณต้องการ src / * / * / **
Matthew Buckett

1
จะ**.cตรงกับอะไร?
chharvey

3
ฉันไม่ได้ใช้ Ant อีกต่อไปดังนั้นฉันจึงไม่ได้อยู่ในสถานที่ที่จะตอบคำถามติดตามผล คุณควรถามคำถามใหม่หรือหาคำตอบจากนั้นส่งการแก้ไขคำตอบของฉัน
benzado

1
@sitaktif วิธีคิดวิธีหนึ่งก็bar.txtคือโดยปริยาย./bar.txt( .หมายถึงไดเร็กทอรีปัจจุบัน) ดังนั้นรายการที่เป็นจริง./bar.txt, ./src/bar.cฯลฯ และ./จะถือว่า
benzado

16

นี่คือการจับคู่รูปแบบพิเศษบางส่วนซึ่งไม่ชัดเจนจากเอกสารประกอบ ทดสอบโดยใช้ NAnt สำหรับไฟล์ตัวอย่างในคำตอบของ benzado:

  • src**                      ตรงกับ 2, 3 และ 4
  • **.c                        ตรงกับ 2, 3 และ 4
  • **ar.*                    ตรงกับ 1 และ 2
  • **/bartest.c/**  การแข่งขัน 4
  • src/ba?.c/**        ตรงกับ 2 และ 3

2
หมายเหตุขนาดเล็ก: มีมด (1.8.2) ** c ไม่สามารถแทนที่ ** / * c
nonsenz

4

เครื่องหมายดอกจันคู่ ( **) เชื่อมโยงกับการจับคู่ชื่อโฟลเดอร์ในขณะที่สัญลักษณ์ดอกจัน ( * = multi characters) และเครื่องหมายคำถาม ( ? = single character) ใช้เพื่อจับคู่ชื่อไฟล์


3

ตรวจสอบการอ้างอิง Nant รูปแบบไฟล์เซ็ตคือ:

"*" จับคู่อักขระศูนย์ขึ้นไปเช่น * .cs
"?" จับคู่อักขระหนึ่งตัวเช่น? .cs

และ '**' ตรงกับแผนผังไดเร็กทอรีเช่น src / ** / * cs จะพบไฟล์ cs ทั้งหมดในไดเร็กทอรีย่อยของ src

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.