寫 Ant 建構腳本時,最常反覆查的就是 copy、delete、mkdir、move、echo 這幾個基本命令的寫法。這篇我把自己常用的用法整理成範例清單,涵蓋複製單一檔案與整個目錄、刪除檔案與備份、建立目錄、搬移檔案,以及把訊息寫進日誌檔,需要時直接照抄改路徑就能用。
怎麼用 copy 命令複製檔案和目錄?
`copy` 主要用來對檔案和目錄做複製,常見三種情境:
- 複製單個檔案:
```xml
```
- 對檔案目錄進行複製:
```xml
```
- 將檔案複製到另外的目錄:
```xml
```
delete 命令怎麼刪除檔案與目錄?
`delete` 用來對檔案或目錄進行刪除,幾個常見例子:
- 刪除某個檔案:
```xml
```
- 刪除某個目錄:
```xml
```
- 刪除所有的備份檔或空目錄:
```xml
```
mkdir 命令怎麼建立目錄?
`mkdir` 用來建立目錄,一次指定完整路徑即可:
```xml
```
move 命令怎麼移動檔案或目錄?
`move` 用來移動檔案或目錄,寫法和 `copy` 很像,但來源會被搬走:
- 移動單個檔案:
```xml
```
- 移動單個檔案到另一個目錄:
```xml
```
- 移動某個目錄到另一個目錄:
```xml
```
echo 命令怎麼輸出訊息到日誌?
`echo` 的作用是根據日誌或監控器的級別輸出資訊。它包括 `message`、`file`、`append` 和 `level` 四個屬性,例如把訊息附加寫入日誌檔:
```xml
```
延伸閱讀
- 利用 Ant 構建和部署 Java 專案:同樣聚焦 Ant、Java,可接著比較不同情境的做法。
- Ant 建構腳本編寫入門:project、target、property 三大關鍵元素:同樣聚焦 Ant、Java,可接著比較不同情境的做法。
- Ant 建構與部署 Java 專案完整教學:javac、java、jar、war 任務實戰:同樣聚焦 Java、Ant,可接著比較不同情境的做法。
常見問題
Ant 的 copy 和 move 命令有什麼差別?
兩者語法幾乎相同,都支援 `file`/`tofile`/`todir` 與 `fileset`。差別在於 `copy` 會保留來源檔案,而 `move` 在複製後會刪除來源,等同「搬移」。
怎麼用 Ant 刪除所有備份檔(*.bak)?
使用 `delete` 搭配 `fileset` 的 `includes="/*.bak"`,並加上 `includeEmptyDirs="true"` 把清空後的目錄一併刪掉。`` 代表遞迴比對所有子目錄。
Ant 的 echo 可以把訊息寫進檔案嗎?
可以。指定 `file` 屬性就會把 `message` 寫入該檔案,再加上 `append="true"` 表示附加而非覆蓋,適合用來累積建置日誌。
Ant 還在用嗎?不是都用 Maven 或 Gradle 了嗎?
Maven、Gradle 確實是現在的主流,但不少維護中的舊 Java 專案仍是 Ant 腳本。理解 copy、delete、mkdir、move、echo 這些基本命令,對接手舊專案或撰寫簡單的自動化流程仍然很有幫助。
參考資料
最後更新
2026-08-28(原文發布於 2013-07-28,本文保留原始筆記內容並補上 GEO 結構。)
關於作者 {#author}
Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。
首次發布:2013-07-28
