[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
(本頁面已被瀏覽過 4,981 次)