[Windows] 在 xcopy 指令中加上 /exclude 選項,排除不想複製的檔案

[Windows] 在 xcopy 指令中加上 /exclude 選項,排除不想複製的檔案

最近在改 Windows 上的 build script,

需要將一些 PE 檔案複製到一個特定目錄,但又希望排除一些特定名稱的 PE 檔~

當然也可以用 copy 指令一個個指定「要複製」的檔案,

但如果要複製的檔案很多的話,有時指定「不要複製」的檔案會比較輕鬆~

 

這時 xcopy 就能派上用場了~

xcopy 有個 /exclude 選項,可以指定一個文字檔,

裡面每一行就是一個要被排除的部分路徑名稱~

 

舉例來說,我想在一個批次檔裡面,將 %SRC_FOLDER% 下所有的 .exe 和 .dll 檔案,

都複製到 %OUTPUT_FOLDER%,但要排除一些檔案,可以這麼寫:

for /r "%SRC_FOLDER%" %%f in (*.exe *.dll) do xcopy /y /exclude:Exclusion.txt "%%f" "%OUTPUT_FOLDER%\"

 

可以看到我們在 xcopy 指令中,加上了 /exclude: 參數,

要排除的檔案路徑寫在 Exclusion.txt,內容可能像下面這樣:

Common\fakefiles
src\unittest

 

注意 Exclusion.txt 裡面寫的不必是完整路徑,只要是部分字串 (sub string) 就行了,

因此路徑中有 Common\fakefiles 或 src\unittest 的 exe/dll 檔案都不會被複製~

這種寫法有時候比寫一堆 copy 指令要來的方便多囉~

 

參考資料:Xcopy and its Application

 

(本頁面已被瀏覽過 1,636 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料