2016-12-06 3 views
-1

Я работаю над пакетным скриптом, которому необходимо скопировать все файлы из одной папки в другую за несколько исключений. Как игнорировать файлы, заканчивающиеся на «Proxy.dll».Игнорировать шаблоны в пакетных файлах

В принципе, я хотел бы знать, можно ли игнорировать файлы на основе части его имени при использовании xcopy.

Это мой сценарий

xcopy C:\\WebService %InstallFolder%\ /EXCLUDE:XcopyExclude.txt /e /s /k /r /h /y /i >>Setup.log 

И это XcopyExclude.txt

.config\ 
Properties 
Obj 
*Proxy.dll 

Благодаря

+1

команда 'Robocopy', переключатель'/XF' (исключить файлы) –

+1

Пожалуйста, отредактируйте ваш вопрос и поделитесь своими неудачными попытками удовлетворить [mcve]. – JosefZ

ответ

0

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.


Если вы настаиваете на /EXCLUDE опции xcopy: это не поддерживает дикие карты, как * или ? но буквальные (без учета регистра) только строк. Однако вы можете решить эту проблему в *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, также будет исключен.

Смежные вопросы