CopyFiles@2 - نسخ الملفات v2 المهمة
استخدم هذه المهمة لنسخ الملفات من مجلد مصدر إلى مجلد هدف باستخدام أنماط المطابقة. (ستتطابق أنماط المطابقة مع مسارات الملفات فقط، وليس مسارات المجلدات).
بناء الجملة
# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
inputs:
#SourceFolder: # string. Source Folder.
Contents: '**' # string. Required. Contents. Default: **.
TargetFolder: # string. Required. Target Folder.
# Advanced
#CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
#OverWrite: false # boolean. Overwrite. Default: false.
#flattenFolders: false # boolean. Flatten Folders. Default: false.
#preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.
#retryCount: '0' # string. Retry count to copy the file. Default: 0.
#delayBetweenRetries: '1000' # string. Delay between two retries. Default: 1000.
#ignoreMakeDirErrors: false # boolean. Ignore errors during creation of target folder. Default: false.
# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
inputs:
#SourceFolder: # string. Source Folder.
Contents: '**' # string. Required. Contents. Default: **.
TargetFolder: # string. Required. Target Folder.
# Advanced
#CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
#OverWrite: false # boolean. Overwrite. Default: false.
#flattenFolders: false # boolean. Flatten Folders. Default: false.
#preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.
# Copy Files v2
# Copy files from source folder to target folder using match patterns (The match patterns will only match file paths, not folder paths).
- task: CopyFiles@2
inputs:
#SourceFolder: # string. Source Folder.
Contents: '**' # string. Required. Contents. Default: **.
TargetFolder: # string. Required. Target Folder.
# Advanced
#CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
#OverWrite: false # boolean. Overwrite. Default: false.
#flattenFolders: false # boolean. Flatten Folders. Default: false.
الإدخالات
SourceFolder
- المجلد المصدر
string
.
اختياري. المجلد الذي يحتوي على الملفات التي تريد نسخها. إذا كان المجلد فارغا، فإن المهمة تنسخ الملفات من المجلد الجذر للمرجع كما لو $(Build.SourcesDirectory)
تم تحديده.
إذا كان الإصدار الخاص بك ينتج بيانات اصطناعية خارج دليل المصادر، فحدد $(Agent.BuildDirectory)
لنسخ الملفات من الدليل الذي تم إنشاؤه للبنية الأساسية لبرنامج ربط العمليات التجارية.
Contents
- محتويات
string
. مطلوب القيمة الافتراضية: **
.
مسارات الملف المراد تضمينها كجزء من النسخة. تدعم هذه السلسلة أسطرا متعددة من أنماط المطابقة.
على سبيل المثال:
*
نسخ كافة الملفات في المجلد المصدر المحدد.**
نسخ كافة الملفات في المجلد المصدر المحدد وجميع الملفات في جميع المجلدات الفرعية.**\bin\**
ينسخ جميع الملفات بشكل متكرر من أي مجلد سلة.
يتم استخدام النمط لمطابقة مسارات الملفات فقط، وليس مسارات المجلدات. حدد أنماطا، مثل **\bin\**
بدلا من **\bin
.
استخدم فاصل المسار الذي يطابق نوع عامل البناء الخاص بك. على سبيل المثال، /
يجب استخدام لوكلاء Linux. يتم عرض المزيد من الأمثلة أدناه.
TargetFolder
- المجلد الهدف
string
. مطلوب
المجلد الهدف أو مسار UNC الذي سيحتوي على الملفات المنسخة. يمكنك استخدام المتغيرات. مثال:$(build.artifactstagingdirectory)
.
CleanTargetFolder
- تنظيف المجلد الهدف
boolean
. القيمة الافتراضية: false
.
اختياري. حذف كافة الملفات الموجودة في المجلد الهدف قبل عملية النسخ.
OverWrite
- الكتابه
boolean
. القيمة الافتراضية: false
.
اختياري. يستبدل الملفات الموجودة في المجلد الهدف.
flattenFolders
- تسوية المجلدات
boolean
. القيمة الافتراضية: false
.
اختياري. تسوية بنية المجلد ونسخ جميع الملفات إلى المجلد الهدف المحدد.
preserveTimestamp
- الاحتفاظ بالطوابع الزمنية الهدف
boolean
. القيمة الافتراضية: false
.
يحافظ على الطابع الزمني للملف الهدف باستخدام الملف المصدر الأصلي.
retryCount
- إعادة المحاولة لنسخ الملف
string
. القيمة الافتراضية: 0
.
يحدد عدد مرات إعادة المحاولة لنسخ الملف. هذه السلسلة مفيدة للمشكلات المتقطعة، مثل المسارات الهدف UNC على مضيف بعيد.
delayBetweenRetries
- التأخير بين اثنتين من عمليات إعادة المحاولة.
string
. القيمة الافتراضية: 1000
.
يحدد التأخير بين محاولتين. هذه السلسلة مفيدة للمشكلات المتقطعة، مثل المسارات الهدف UNC على مضيف بعيد.
ignoreMakeDirErrors
- تجاهل الأخطاء أثناء إنشاء المجلد الهدف.
boolean
. القيمة الافتراضية: false
.
يتجاهل الأخطاء التي تحدث أثناء إنشاء المجلد الهدف. هذه السلسلة مفيدة لتجنب المشكلات المتعلقة بالتنفيذ المتوازي للمهام من قبل عدة عوامل داخل مجلد هدف واحد.
خيارات التحكم بالمهمة
تحتوي جميع المهام على خيارات التحكم بالإضافة إلى مدخلات المهام الخاصة بها. لمزيد من المعلومات، راجع خيارات التحكم وخصائص المهمة الشائعة.
متغيرات الإخراج
لا شيء
الملاحظات
إذا لم تتطابق أي ملفات، فستستمر المهمة في الإبلاغ عن النجاح.
- إذا كان
Overwrite
ملفاfalse
متطابقا موجودا بالفعل في المجلد الهدف، فلن تبلغ المهمة عن الفشل ولكن سجل وجود الملف بالفعل وتخطيه. - إذا كان
Overwrite
موجوداtrue
وملف متطابق موجود بالفعل في المجلد الهدف، فسيتم الكتابة فوق الملف المطابق.
أمثلة
نسخ الملف إلى دليل التقسيم المرحلي للبيانات الاصطناعية ونشره
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
نسخ الملفات التنفيذية وملف readme
الهدف
تريد نسخ readme فقط والملفات اللازمة لتشغيل تطبيق وحدة تحكم C# هذا:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
ملاحظة
يحتوي ConsoleApplication1.sln على مجلد سلة يحتوي على .dll وملفات .exe، راجع النتائج أدناه لمعرفة ما يتم نقله!
في علامة التبويب المتغيرات، $(BuildConfiguration)
يتم تعيين إلى release
.
مثال مع أنماط مطابقة متعددة:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\*.exe
ConsoleApplication1\ConsoleApplication1\bin\**\*.dll
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
مثال مع شرط OR:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
مثال مع شرط NOT:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\**\bin\**\!(*.pdb|*.config)
!ConsoleApplication1\**\ClassLibrary*\**
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
مثال مع المتغيرات في قسم المحتوى
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
النتائج
يتم نسخ هذه الملفات إلى الدليل المرحلي:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
انسخ كل شيء من الدليل المصدر باستثناء المجلد .git
مثال مع أنماط مطابقة متعددة:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
المتطلبات
المتطلبات | الوصف |
---|---|
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية | YAML، الإصدار الكلاسيكي |
يعمل على | Agent, DeploymentGroup |
المطالب | بلا |
القدرات | لا تفي هذه المهمة بأي متطلبات للمهام اللاحقة في الوظيفة. |
قيود الأوامر | يتم تشغيل هذه المهمة باستخدام قيود الأمر التالية: مقيد |
متغيرات Settable | هذه المهمة لديها إذن لتعيين المتغيرات التالية: تم تعطيل تعيين المتغيرات |
إصدار الوكيل | 2.182.1 أو أحدث |
فئة المهمة | الأداة المساعدة |
المتطلبات | الوصف |
---|---|
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية | YAML، الإصدار الكلاسيكي |
يعمل على | Agent, DeploymentGroup |
المطالب | بلا |
القدرات | لا تفي هذه المهمة بأي متطلبات للمهام اللاحقة في الوظيفة. |
قيود الأوامر | أي |
متغيرات Settable | أي |
إصدار الوكيل | 1.91.0 أو أحدث |
فئة المهمة | الأداة المساعدة |