Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Linux, macOS veya Windows üzerinde powershell betiği çalıştırmak için bu görevi kullanın.
Uyarı
PowerShell v2 varsayılan olarak Linux aracıları için PowerShell Core ve Windows aracıları için Windows PowerShell kullanır. Windows aracılarında PowerShell'in en son sürümünü kullanmak için pwsh parametresini trueolarak ayarlayın. Bunun yerine PowerShell Core kullanılır.
Sözdizimi
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
# Preference Variables
#errorActionPreference: 'stop' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#warningPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. WarningPreference. Default: default.
#informationPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. InformationPreference. Default: default.
#verbosePreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. VerbosePreference. Default: default.
#debugPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. DebugPreference. Default: default.
#progressPreference: 'silentlyContinue' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. ProgressPreference. Default: silentlyContinue.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#showWarnings: false # boolean. Show warnings as Azure DevOps warnings. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
#runScriptInSeparateScope: false # boolean. Run script in the separate scope. Default: false.
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
# Preference Variables
#errorActionPreference: 'stop' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#warningPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. WarningPreference. Default: default.
#informationPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. InformationPreference. Default: default.
#verbosePreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. VerbosePreference. Default: default.
#debugPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. DebugPreference. Default: default.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#showWarnings: false # boolean. Show warnings as Azure DevOps warnings. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
#runScriptInSeparateScope: false # boolean. Run script in the separate scope. Default: false.
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
#errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#showWarnings: false # boolean. Show warnings as Azure DevOps warnings. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
#errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
Girişler
targetType
-
Tür
string. İzin verilen değerler: filePath (Dosya Yolu), inline. Varsayılan değer: filePath.
Görevin çalıştırılacak betiğin türünü belirtir: satır içi betik veya .ps1 dosyasının yolu.
filePath
-
Betik Yolu
string.
targetType = filePathgerekir.
Yürütülecek betiğin yolunu belirtir. Tam yol veya $(System.DefaultWorkingDirectory)göreli olmalıdır.
bağımsız değişkenleri
string. Opsiyonel.
targetType = filePatholduğunda kullanın.
PowerShell betiğine geçirilen bağımsız değişkenleri belirtir. Bağımsız değişkenler sıralı parametreler veya adlandırılmış parametreler olabilir. Örneğin, -Name someName -Path -Value "Some long string value".
arguments
targetTypeolarak ayarlandığında inline kullanılmaz.
script
-
Betik
string.
targetType = inlinegerekir. Varsayılan değer: # Write your PowerShell commands here.\n\nWrite-Host "Hello World".
Betiğin içeriğini belirtir. Desteklenen satır içi betik uzunluğu üst sınırı 20000 karakterdir. Daha uzun bir betik kullanmak istiyorsanız bir dosyadan betik kullanın.
errorActionPreference
-
ErrorActionPreference
string. İzin verilen değerler: default, stop, continue, silentlyContinue. Varsayılan değer: stop.
Betiğinizin en üstüne satır $ErrorActionPreference = 'VALUE' ekler.
errorActionPreference
-
ErrorActionPreference
string. İzin verilen değerler: stop, continue, silentlyContinue. Varsayılan değer: stop.
Betiğinizin en üstüne satır $ErrorActionPreference = 'VALUE' ekler.
warningPreference
-
WarningPreference (Uyarı Tercihi)
string. İzin verilen değerler: default, stop, continue, silentlyContinue. Varsayılan değer: default.
Defaultolarak ayarlanmadığında, betiğinizin en üstüne $WarningPreference = 'VALUE' satırı ekler.
informationPreference
-
BilgileriÖnerlik
string. İzin verilen değerler: default, stop, continue, silentlyContinue. Varsayılan değer: default.
Defaultolarak ayarlanmadığında, betiğinizin en üstüne $InformationPreference = 'VALUE' satırı ekler.
verbosePreference
-
AyrıntıPreference
string. İzin verilen değerler: default, stop, continue, silentlyContinue. Varsayılan değer: default.
Defaultolarak ayarlanmadığında, betiğinizin en üstüne $VerbosePreference = 'VALUE' satırı ekler.
debugPreference
-
Hata Ayıklama Tercihi
string. İzin verilen değerler: default, stop, continue, silentlyContinue. Varsayılan değer: default.
Defaultolarak ayarlanmadığında, betiğinizin en üstüne $DebugPreference = 'VALUE' satırı ekler.
İlerlemeyi progressPreference - Önerişim
string. İzin verilen değerler: default, stop, continue, silentlyContinue. Varsayılan değer: silentlyContinue.
Defaultolarak ayarlanmadığında, betiğinizin en üstüne $ProgressPreference = 'VALUE' satırı ekler.
standart hatabaşarısız failOnStderr -
boolean. Varsayılan değer: false.
Bu boole değerinin değeri trueise, hata işlem hattına herhangi bir hata yazılırsa veya Standart Hata akışına herhangi bir veri yazılırsa görev başarısız olur. Aksi takdirde, görev hata belirlemek için çıkış koduna dayanır.
showWarnings
-
Uyarıları Azure DevOps uyarıları olarak göster
boolean. Varsayılan değer: false.
Değer trueolarak ayarlanırsa ve betiğiniz uyarılar yazarsa, uyarılar İşlem hattı günlüklerinde uyarı olarak görünür.
ignoreLASTEXITCODE
-
Yoksay $LASTEXITCODE
boolean. Varsayılan değer: false.
Değer falseolarak ayarlanırsa, if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } satırı betiğinizin sonuna eklenir. Bu, dış komuttan son çıkış kodunun powershellçıkış kodu olarak yayılmasına neden olur. Aksi takdirde, satır betiğinizin sonuna eklenmez.
pwsh
-
PowerShell Core kullanma
boolean. Varsayılan değer: false.
Bu doğruysa, Windows aracılarında çalışan görevler pwsh.exeyerine yolunuzdan powershell.exe kullanır.
çalışma dizini
string.
Betiğin çalıştırıldığı çalışma dizinini belirtir. Bir değer belirtilmezse, çalışma dizini $(Build.SourcesDirectory)olur.
runScriptInSeparateScope
-
Betiği ayrı kapsamda çalıştır
boolean. Varsayılan değer: false.
Bu giriş, varsayılan &yerine . işlecini kullanarak PowerShell betiklerinin yürütülmesine olanak tanır. Bu giriş trueolarak ayarlanırsa betik ayrı bir kapsamda yürütülür ve genel kapsamlı PowerShell değişkenleri güncelleştirilmez.
Görev denetimi seçenekleri
Tüm görevlerin, görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz. Denetim seçenekleri ve ortak görev özellikleri.
Çıkış değişkenleri
Yok.
Açıklamalar
Her PowerShell oturumu yalnızca çalıştığı işin süresi boyunca sürer. Önyüklemenin ne olduğuna bağlı olan görevler, bootstrap ile aynı işte olmalıdır.
Görev kısayolları
PowerShell@2 YAML'de iki kısayol vardır: steps.powershell ve steps.pwsh.
-
powershell, Windows PowerShell (Windows üzerinde) veyapwsh(Linux ve macOS) kullanarak çalışır. -
pwsh, .NET Core üzerinde oluşturulan PowerShell'in platformlar arası sürümü PowerShell Core'ı çalıştırır.
steps:
- powershell: # Run a script in Windows PowerShell on Windows, and pwsh on Linux and macOS.
- pwsh: # Run a script in PowerShell Core on Windows, macOS, and Linux.
Sonraki betikler ve görevler tarafından okunabilmesi için bir değişken ayarlayın
Bir betikte derleme değişkenlerini tanımlama hakkında daha fazla bilgi edinmek için bkz. betikte derleme değişkenlerinizi tanımlama ve değiştirme.
Betikte yayın değişkenlerini tanımlama hakkında daha fazla bilgi edinmek için betikte yayın değişkenlerinizi tanımlama ve değiştirme bölümüne bakın.
İşlem hattı gizli dizilerini betikte geçirme, ancak gizli dizi işlem hattı günlüklerinde maskelenmez
PowerShell'in hata iletilerini kestiğini unutmayın; bu nedenle bir betikte işlem hattı gizli dizileri kullanırsanız gizli diziler kırpılabilir ve kullanıma sunulur. Örneğin, aşağıdaki satır içi betikte:
./script.ps1 --arg1 value1 --arg2 <some_secret_which_will_be_masked_here>
şöyle bir özel durum olabilir: At <path_to_temp_script_file>:4 char:3:
+ ./script.ps1 --arg1 value1 --arg2 <unmasked_part_of_original_secret> ...
+ ~~~~~~~~~~
+ <Additional exception details>
Bu sorunu önlemek için bu özel durumları bir betik düzeyinde işleyebilir veya işlem hattı gizli dizilerinin hata iletileri içindeki kaynak kod satırlarında görünebileceği durumlardan kaçınabilirsiniz.
Örnekler
- Dosyadan betik çağırma
- Uyarı yazma
- Hata yazma
- Birden çok bağımsız değişken içeren PowerShell betiğini çağırma
Dosyadan betik çağırma
Aşağıda, deponuzun kökünde bulunan test.ps1 adlı örnek bir PowerShell dosyası verilmiştir.
Write-Host "Hello World from $Env:AGENT_NAME."
Write-Host "My ID is $Env:AGENT_ID."
Write-Host "AGENT_WORKFOLDER contents:"
gci $Env:AGENT_WORKFOLDER
Write-Host "AGENT_BUILDDIRECTORY contents:"
gci $Env:AGENT_BUILDDIRECTORY
Write-Host "BUILD_SOURCESDIRECTORY contents:"
gci $Env:BUILD_SOURCESDIRECTORY
Write-Host "Over and out."
Bu betiği işlem hattınızda aşağıdaki gibi çağırabilirsiniz.
steps:
- task: PowerShell@2
inputs:
targetType: 'filePath'
filePath: 'test.ps1'
Uyarı yazma
- task: PowerShell@2
inputs:
targetType: 'inline'
script: Write-Host "##vso[task.LogIssue type=warning;]This is the warning"
# Writes a warning to build summary and to log in yellow text
Hata yazma
- task: PowerShell@2
inputs:
targetType: 'inline'
script: Write-Host "##vso[task.LogIssue type=error;]This is the error"
# Writes an error to build summary and to log in red text
Bu hatanın derlemede başarısız olmasını istiyorsanız betike exit 1 ekleyin.
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "##vso[task.LogIssue type=error;]This is the error"
exit 1
# Writes an error to build summary and to log in red text
Birden çok bağımsız değişken içeren PowerShell betiğini çağırma
test2.ps1PowerShell betiği oluşturma:
param ($input1, $input2)
Write-Host "$input1 $input2"
YAML işlem hattınızda şunları çağırabilirsiniz:
- task: PowerShell@2
inputs:
targetType: 'filePath'
filePath: $(System.DefaultWorkingDirectory)\test2.ps1
arguments: > # Use this to avoid newline characters in multiline string
-input1 "Hello"
-input2 "World"
displayName: 'Print Hello World'
Gereksinimler
| Gereksinim | Açıklama |
|---|---|
| İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
| Üzerinde çalışır | Agent, DeploymentGroup |
| Talepleri | Hiç kimse |
| Özellikleri | Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz. |
| Komut kısıtlamaları | Herhangi bir |
| Ayarlanabilir değişkenleri | Herhangi bir |
| Aracı sürümü | 2.115.0 veya üzeri |
| Görev kategorisi | Fayda |
Ayrıca bkz.
- İşlem hattınızı özelleştirmek için PowerShell betiği kullanma - ApplyVersionToAssemblies.ps1
- PowerShell betikleri hakkında daha fazla bilgi edinin
- Windows PowerShell ile Betik Oluşturma
- Microsoft Betik Merkezi (Betik Oluşturma Adamları)
- PowerShell.org