的robocopy
command提供了更加智能的排除功能(開關/XD
和/XF
)比xcopy
做,你可以用它來完成你的任務:
robocopy "C:\WebService" "%InstallFolder%" "*.*" /XD "*.config" "Properties" "Obj" /XF "*Proxy.dll" /E /S /FP /NJH /NJS /NS /NC /NDL /NP /LOG+:"Setup.log"
所有與/N
開始以及所述/FP
開關控制所記錄的輸出的外觀,因此它是相當類似於xcopy
命令的開關。
如果你堅持的xcopy
的/EXCLUDE
選項:這並不支持野生卡樣*
或?
但文字(不區分大小寫)唯一字符串。但是,您可以提前解決*Proxy.dll
中的通配符。鑑於你有一個文件XcopyExclude.txt
,內容如下...:
.config\
\Properties\
\Obj\
...(假設所有這些項目(部分)目錄名),你會這樣的內容複製到一個臨時文件和實際的複製活動之前追加解決*Proxy.dll
部分:
rem // Prepare exclusion list file:
copy /Y "XcopyExclude.txt" "XcopyExclude.tmp"
>> "XcopyExclude.tmp" (
for /R "C:\WebService" %%E in ("*Proxy.dll") do (
echo(\%%~nxE
)
)
rem // Perform copying action:
xcopy "C:\WebService" "%InstallFolder%" /E /S /K /R /H /Y /I /EXCLUDE:XcopyExclude.tmp >> "Setup.log"
rem // Clean up temporary list file:
del "XcopyExclude.tmp"
假設有一個源代碼目錄樹叫AnyProxy.dll
文件,文件XcopyExclude.tmp
中的相關條目將是\AnyProxy.dll
。請注意,一個名爲AnyProxy.dll.any
的項目也會被意外排除。
'Robocopy'命令,'/ XF'(不包括文件)開關 –
請編輯您的問題並分享您的(不成功)嘗試以滿足[mcve]。 – JosefZ