PowerShell@2 - PowerShell v2 görevi
Linux, macOS veya Windows üzerinde powershell betiği çalıştırmak için bu görevi kullanın.
Not
Varsayılan olarak, PowerShell v2 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 parametresini pwsh
olarak true
ayarlayın. Bunun yerine PowerShell Core kullanılacaktır.
Syntax
# 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.
# PowerShell v2
# Run a PowerShell script on Windows, macOS, or Linux.
- 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
.
Çalıştırılacak görevin betiğinin türünü belirtir: satır içi betik veya dosyanın .ps1
yolu.
filePath
- Betik Yolu
string
. olduğunda targetType = filePath
gereklidir.
Yürütülecek betiğin yolunu belirtir. Tam yol veya ile $(System.DefaultWorkingDirectory)
ilgili olmalıdır.
arguments
- Bağımsız değişken
string
. İsteğe bağlı. when targetType = filePath
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
olarak ayarlandığında inline
kullanılmaztargetType
.
script
- Komut dosyası
string
. olduğunda targetType = inline
gereklidir. 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.
script
- Komut dosyası
string
. olduğunda targetType = inline
gereklidir. Varsayılan değer: # Write your powershell commands here.\n\nWrite-Host "Hello World"\n\n# Use the environment variables input below to pass secret variables to this script.
.
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
string
. İzin verilen değerler: default
, stop
, continue
, silentlyContinue
. Varsayılan değer: default
.
olarak ayarlanmadığında Default
, betiğinizin üst kısmındaki satırın $WarningPreference = 'VALUE'
başına ekler.
informationPreference
- InformationPreference
string
. İzin verilen değerler: default
, stop
, continue
, silentlyContinue
. Varsayılan değer: default
.
olarak ayarlanmadığında Default
, betiğinizin üst kısmındaki satırın $InformationPreference = 'VALUE'
başına ekler.
verbosePreference
- VerbosePreference
string
. İzin verilen değerler: default
, stop
, continue
, silentlyContinue
. Varsayılan değer: default
.
olarak ayarlanmadığında Default
, betiğinizin üst kısmındaki satırın $VerbosePreference = 'VALUE'
başına ekler.
debugPreference
- DebugPreference
string
. İzin verilen değerler: default
, stop
, continue
, silentlyContinue
. Varsayılan değer: default
.
olarak ayarlanmadığında Default
, betiğinizin üst kısmındaki satırın $DebugPreference = 'VALUE'
başına ekler.
progressPreference
- ProgressPreference
string
. İzin verilen değerler: default
, stop
, continue
, silentlyContinue
. Varsayılan değer: silentlyContinue
.
olarak ayarlanmadığında Default
, betiğinizin üst kısmındaki satırın $ProgressPreference = 'VALUE'
başına ekler.
failOnStderr
- Standart Hatada Başarısız Oldu
boolean
. Varsayılan değer: false
.
Bu boole değerinin değeri ise true
, hata işlem hattına herhangi bir hata yazılırsa veya herhangi bir veri Standart Hata akışına 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 olarak ayarlanırsa true
ve betiğiniz uyarılar yazarsa, uyarılar İşlem hattı günlüklerinde uyarı olarak görünür.
ignoreLASTEXITCODE
- $LASTEXITCODE yoksay
boolean
. Varsayılan değer: false
.
Değer olarak ayarlanırsa false
, satır if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }
betiğinizin sonuna eklenir. Bu, bir dış komuttan son çıkış kodunun çıkış kodu olarak yayılmasına powershell
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ıştırılan görevler yerine yolunuz powershell.exe
üzerinden kullanılırpwsh.exe
.
workingDirectory
- Çalışma Dizini
string
.
Betiğin çalıştırıldığı çalışma dizinini belirtir. Bir değer belirtilmezse, çalışma dizini olur $(Build.SourcesDirectory)
.
runScriptInSeparateScope
- Betiği ayrı kapsamda çalıştırma
boolean
. Varsayılan değer: false
.
Bu giriş, PowerShell betiklerinin varsayılan .
yerine işleç kullanılarak &
yürütülmesini sağlar. Bu giriş olarak true
ayarlanırsa betik ayrı bir kapsamda yürütülür ve genel kapsamlı PowerShell değişkenleri güncelleştirilmez.
Görev denetim seçenekleri
Tüm görevlerde 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ı görevlerin bootstrap ile aynı işte olması gerekir.
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'u ç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
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 bkz. Betikte yayın değişkenlerinizi tanımlama ve değiştirme.
İş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>
gibi 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 adlı test.ps1
ö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 betiğine ekleyin exit 1
.
- 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
PowerShell betiği test2.ps1
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ıştırılır | Agent, DeploymentGroup |
Talep | Hiçbiri |
Özellikler | Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz. |
Komut kısıtlamaları | Herhangi biri |
Ayarlanabilir değişkenler | Herhangi biri |
Aracı sürümü | 2.115.0 veya üzeri |
Görev kategorisi | Yardımcı Program |
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