「* 後擴展名之前的內容都被忽略」
**錯誤**。* 代表「任意長度 (含 0) 的任意字元」,**後續字元仍參與匹配**。
C:\test> dir /b
ab.txt
abc.txt
abx.txt
abcd.txt
a.txt
C:\test> dir /b ab*c.txt
abc.txt
abx.txt ← x 匹配 *,c.txt 後綴匹配成功
abcd.txt ← cd 匹配 *,c.txt 後綴匹配成功
ab.txt ← * 匹配空字串,c.txt 後綴失敗 → **不列出**
a.txt ← * 匹配空,c.txt 失敗 → **不列出**
| 模式 | 含義 | 匹配範例 |
|---|---|---|
* | 任意字元序列 (含空) | a* → a, ab, abc... |
? | 單一任意字元 | a?c → abc, axc, a2c... |
ab*c.txt | 以 ab 開頭、以 c.txt 結尾、中間任意 | abc.txt, abxxc.txt, abc.txt |
ab?c.txt | 以 ab 開頭、第 4 字元任意、以 c.txt 結尾 |
dir /b ab*c* ← 以 ab 開頭、含 c、任意結尾
dir /b ab*c. ← 以 ab 開頭、含 c、有副檔名
dir /b ab*c.txt ← 以 ab 開頭、以 c.txt 結尾 (最精確)
若需「ab 開頭、c 結尾、無副檔名」:dir /b ab*c. (點號代表無副檔名) 或 dir /b ab*c (但會匹配 abc.txt)。