Klasik yayın ve yapıt değişkenleri

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015

Not

Microsoft Team Foundation Server (TFS) 2018 ve önceki sürümlerde, derleme ve yayın işlem hatlarıtanımlarolarak adlandırılır, çalışmalaraderlemelerdenir, hizmet bağlantılarınahizmet uç noktalarıdenir, aşamalarortamlarolarak adlandırılır ve işleraşamalarolarak adlandırılır.

Klasik yayın ve yapıt değişkenleri, ardışık düzen genelinde veri alışverişi yapmak ve taşımak için kullanışlı bir yoldur. Her değişken bir dize olarak saklanır ve değeri, işlem hattınızdaki çalıştırmalar arasında değişebilir.

Değişkenler yalnızca şablon ayrıştırma zamanında kullanılabilen çalışma zamanı parametrelerinden farklıdır.

Not

Bu, klasik yayın ve yapıt değişkenlerini içeren bir başvuru makaleleridir. YAML işlem hatlarında değişkenleri anlamak için bkz. Kullanıcı tanımlı değişkenler. Bir yayın işlem hattından bir YAML ardışık düzenine geçiş yaptığınızda, Release.* değişkenler doldurulmaz.

uygulamanızı DevOps cı/CD işlemlerinizde her bir aşamaya dağıtmaya yönelik görevleri oluştururken, değişkenler şunları yapmanıza yardımcı olur:

  • Daha genel bir dağıtım işlem hattını bir kez tanımlayıp her aşama için kolayca özelleştirin. Örneğin, bir değişken Web dağıtımı için bağlantı dizesini temsil etmek için kullanılabilir ve bu değişkenin değeri bir aşamadan diğerine değiştirilebilir. Bunlar özel değişkenlerdir.

  • Dağıtım ardışık düzeninin çalıştırıldığı belirli bir yayın, aşama, yapıtveya aracının bağlamı hakkındaki bilgileri kullanın. Örneğin, betiğinizin indirmek için derleme konumuna veya geçici dosyalar oluşturmak için aracıdaki çalışma dizinine erişmesi gerekebilir. Bunlar varsayılan değişkenlerdir.

İpucu

Bir yayının Tüm değişkenlerinin geçerli değerlerini görüntüleyebilir ve bir yayını hata ayıklama modunda çalıştırmakiçin varsayılan değişkeni kullanabilirsiniz.

Varsayılan değişkenler

Yürütme bağlamı hakkındaki bilgiler, görevleri varsayılan değişkenlerle çalıştırmak için kullanılabilir hale getirilir. Görevleriniz ve betikleriniz, üzerinde çalıştıkları sistem, yayın, aşama veya aracı hakkında bilgi bulmak için bu değişkenleri kullanabilir. System. Debugdışında, bu değişkenler salt okunurdur ve değerleri sistem tarafından otomatik olarak ayarlanır. En önemli değişkenlerden bazıları aşağıdaki tablolarda açıklanmıştır. Tam listeyi görüntülemek için, bkz. tüm değişkenlerin geçerli değerlerini görüntüleme.

Sistem

Değişken adı Description
System. TeamFoundationServerUri TFS veya Azure Pipelines Hizmet bağlantısının URL 'SI. Azure Pipelines REST apı 'lerini çağırmak için komut dosyalarınızda veya görevlerinizde bunu kullanın.

Örnek: https://fabrikam.vsrm.visualstudio.com/
System. TeamFoundationCollectionUri Team Foundation koleksiyonunun veya Azure Pipelines URL 'SI. Derleme ve sürüm denetimi gibi diğer hizmetlere REST API 'Leri çağırmak için komut dosyalarınızda veya görevlerinizde bunu kullanın.

Örnek: https://dev.azure.com/fabrikam/
System. CollectionId Bu derleme veya yayının ait olduğu koleksiyonun KIMLIĞI. TFS 2015 ' de kullanılamaz.

Örnek: 6c6f3423-1c84-4625-995a-f7f143a1e43d
System. definitionId Geçerli yayının ait olduğu yayın işlem hattının KIMLIĞI. TFS 2015 ' de kullanılamaz.

Örnek: 1
System. TeamProject Bu derleme veya yayının ait olduğu projenin adı.

Örnek: Fabrikam
System. Teamprojectıd Bu derleme veya yayının ait olduğu projenin KIMLIĞI. TFS 2015 ' de kullanılamaz.

Örnek: 79f5c12e-3337-4151-be41-a268d2c73344
System. ArtifactsDirectory Yayın dağıtımı sırasında yapıtların indirileceği dizin. Dizin, yapıtların aracıya indirilmesinin gerekli olması durumunda her dağıtımdan önce temizlenir. Agent. ReleaseDirectory ve System. DefaultWorkingDirectory ile aynı.

Örnek: C:\agent\_work\r1\a
System. DefaultWorkingDirectory Yayın dağıtımı sırasında yapıtların indirileceği dizin. Dizin, yapıtların aracıya indirilmesinin gerekli olması durumunda her dağıtımdan önce temizlenir. Agent. ReleaseDirectory ve System. ArtifactsDirectory ile aynı.

Örnek: C:\agent\_work\r1\a
System. WorkFolder Bu aracı için alt klasörlerin her derleme veya yayın için oluşturulduğu çalışma dizini. Agent. RootDirectory ve Agent. WorkFolder ile aynı.

Örnek: C:\agent\_work
System. Debug Bu, kullanıcılar tarafından ayarlanarak kullanılabilecek tek sistem değişkenidir. Hatayı bulmada yardımcı olması için sürümü hata ayıklama modunda çalıştırmak için bunu true olarak ayarlayın.

Örnek: true

Yayınla

Değişken adı Description
Release. AttemptNumber Bu aşamanın bu aşamada dağıtılma sayısı. TFS 2015 ' de kullanılamaz.

Örnek: 1
Release. Definitionenvironmentıd İlgili yayın ardışık düzeninde aşamanın KIMLIĞI. TFS 2015 ' de kullanılamaz.

Örnek: 1
Release. definitionId Geçerli yayının ait olduğu yayın işlem hattının KIMLIĞI. TFS 2015 ' de kullanılamaz.

Örnek: 1
Release. DefinitionName Geçerli yayının ait olduğu yayın ardışık düzeninin adı.

Örnek: fabrikam-cd
Release. Deployment. RequestedFor Şu anda devam eden dağıtımı tetikleyen (başlatılan) kimliğin görünen adı. TFS 2015 ' de kullanılamaz.

Örnek: Mateo Escobedo
Release. Deployment. RequestedForEmail Şu anda devam eden dağıtımı tetikleyen (başlatılan) kimliğin e-posta adresi. TFS 2015 ' de kullanılamaz.

Örnek: mateo@fabrikam.com
Release. Deployment. Requestedforıd Şu anda devam eden dağıtımı tetikleyen (başlatılan) kimliğin KIMLIĞI. TFS 2015 ' de kullanılamaz.

Örnek: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release. DeploymentId Dağıtımın KIMLIĞI. İş başına benzersiz.

Örnek: 254
Release. Deployphaseıd Dağıtımın çalıştığı aşamanın KIMLIĞI.

Örnek: 127
Release. environmentID Dağıtım Şu anda devam eden bir yayındaki aşama örneğinin KIMLIĞI.

Örnek: 276
Release. EnvironmentName Dağıtımın Şu anda devam ettiği aşamanın adı.

Örnek: Dev
Release. EnvironmentUri Dağıtım Şu anda devam eden bir yayındaki aşama örneğinin URI 'SI.

Örnek: vstfs://ReleaseManagement/Environment/276
Yayın. ortamları. {aşama-adı}. durum Aşamanın dağıtım durumu.

Örnek: InProgress
Release. bir Yartılaactsourcealias Birincil yapıt kaynağının diğer adı

Örnek: fabrikam\_web
Yayın. nedeni Dağıtımın nedeni. Desteklenen değerler şunlardır:
ContinuousIntegration -derleme tamamlandıktan sonra sürekli dağıtımda yayın başlatıldı.
Manual -Yayın el ile başlatıldı.
None -Dağıtım nedeni belirtilmedi.
Scheduled -Yayın bir zamanlamaya göre başladı.
Release. ReleaseDescription Yayın sırasında sunulan metin açıklaması.

Örnek: Critical security patch
Release. ReleaseID Geçerli yayın kaydının tanımlayıcısı.

Örnek: 118
Release. Retaasename Geçerli yayın adı.

Örnek: Release-47
Release. ReleaseUri Geçerli yayın URI 'SI.

Örnek: vstfs://ReleaseManagement/Release/118
Release. ReleaseWebURL 'Si Bu sürümün URL 'SI.

Örnek: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary
Release. RequestedFor Yayını tetikleyen kimliğin görünen adı.

Örnek: Mateo Escobedo
Release. RequestedForEmail Yayını tetikleyen kimliğin e-posta adresi.

Örnek: mateo@fabrikam.com
Release. Requestedforıd Yayını tetikleyen kimliğin KIMLIĞI.

Örnek: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release. Skipartıactsdownload Yapıtların aracıya indirilmesini atlayıp atlanmayacağını belirleyen Boolean değer.

Örnek: FALSE
Release. Triggeringyapay. Alias Yayını tetikleyen yapıt diğer adı. Bu, yayın zamanlandığında veya el ile tetiklendiğinde boştur.

Örnek: fabrikam\_app

Yayın aşaması

Değişken adı Description
Yayın. ortamları. {aşama adı}. Durumlarına Belirtilen aşamada bu yayının dağıtım durumu. TFS 2015 ' de kullanılamaz.

Örnek: NotStarted

Aracı

Değişken adı Description
Agent.Name Aracı havuzuile kayıtlı olarak aracının adı. Bunun nedeni, bilgisayar adından farklı olabilir.

Örnek: fabrikam-agent
Agent. MachineName Aracının yapılandırıldığı bilgisayarın adı.

Örnek: fabrikam-agent
Agent. Version Aracı yazılımının sürümü.

Örnek: 2.109.1
Agent. JobName Release veya Build gibi çalışan işin adı.

Örnek: Release
Agent. HomeDirectory Aracının yüklü olduğu klasör. Bu klasör, aracının kodunu ve kaynaklarını içerir.

Örnek: C:\agent
Agent. ReleaseDirectory Yayın dağıtımı sırasında yapıtların indirileceği dizin. Dizin, yapıtların aracıya indirilmesinin gerekli olması durumunda her dağıtımdan önce temizlenir. System. ArtifactsDirectory ve System. DefaultWorkingDirectory ile aynıdır.

Örnek: C:\agent\_work\r1\a
Agent. Rootdizini Bu aracı için alt klasörlerin her derleme veya yayın için oluşturulduğu çalışma dizini. Aracı. WorkFolder ve System. WorkFolder ile aynı.

Örnek: C:\agent\_work
Agent. WorkFolder Bu aracı için her derleme veya yayın için alt klasörlerin oluşturulacak çalışma dizini. Agent.RootDirectory ve System.WorkFolder ile aynı.

Örnek: C:\agent\_work
Agent.DeploymentGroupId Aracının kayıtlı olduğu dağıtım grubunun kimliği. Bu yalnızca dağıtım grubu işlerinde kullanılabilir. TFS 2018 Güncelleştirme 1'de kullanılamaz.

Örnek: 1

Genel Yapıt

Bir yayında başvurulan her yapıt için aşağıdaki yapıt değişkenlerini kullanabilirsiniz. Her yapıt türü için tüm değişkenler anlamlı değildir. Aşağıdaki tabloda varsayılan yapıt değişkenleri listelenmiştir ve yapıt türüne bağlı olarak sahip olduğu değerlerin örnekleri verilmiştir. Bir örnek boşsa, değişkenin bu yapıt türü için doldurulmaması anlamına gelir.

yer {alias} tutucusunu yapıt diğer adı için belirttiğiniz {alias} yayın işlem hattı için oluşturulan varsayılan değerle değiştirin.

Değişken adı Description
Sürüm. Artifacts. {alias}. DefinitionId Derleme işlem hattının veya deponun tanımlayıcısı.

Azure Pipelines örnek:1
GitHub örnek:fabrikam/asp
Sürüm. Artifacts. {alias}. DefinitionName Derleme işlem hattının veya deponun adı.

Azure Pipelines örnek:fabrikam-ci
TFVC örneği: $/fabrikam
Git örneği: fabrikam
GitHub örnek:fabrikam/asp (main)
Sürüm. Artifacts. {alias}. BuildNumber Derleme numarası veya işleme tanımlayıcısı.

Azure Pipelines örnek:20170112.1
Jenkins/TeamCity örneği: 20170112.1
TFVC örneği: Changeset 3
Git örneği: 38629c964
GitHub örnek:38629c964
Sürüm. Artifacts. {alias}. BuildId Derleme tanımlayıcısı.

Azure Pipelines örnek:130
Jenkins/TeamCity örneği: 130
GitHub örnek:38629c964d21fe405ef830b7d0220966b82c9e11
Sürüm. Artifacts. {alias}. BuildURI Derlemenin URL'si.

Azure Pipelines örnek:vstfs://build-release/Build/130
GitHub örnek:https://github.com/fabrikam/asp
Sürüm. Artifacts. {alias}. SourceBranch Kaynağın yerleşik olduğu dal için tam yol ve ad.

Azure Pipelines örnek:refs/heads/main
Sürüm. Artifacts. {alias}. SourceBranchName Yalnızca kaynağın içinde yer alan dal adı.

Azure Pipelines örnek:main
Sürüm. Artifacts. {alias}. Sourceversion Yerleşik işleme.

Azure Pipelines örnek:bc0044458ba1d9298cdc649cb5dcf013180706f7
Sürüm. Artifacts. {alias}. Repository.Provider Kaynağın içinde yer alan depo türü.

Azure Pipelines örnek:Git
Sürüm. Artifacts. {alias}. RequestedForID Derlemeyi tetikleyen hesabın tanımlayıcısı.

Azure Pipelines örnek:2f435d07-769f-4e46-849d-10d1ab9ba6ab
Sürüm. Artifacts. {alias}. RequestedFor Derlemeyi istenen hesabın adı.

Azure Pipelines örnek:Mateo Escobedo
Sürüm. Artifacts. {alias}. Türü Yapıt kaynağının türü, örneğin Derleme.

Azure Pipelines örnek:Build
Jenkins örneği: Jenkins
TeamCity örneği: TeamCity
TFVC örneği: TFVC
Git örneği: Git
GitHub örnek:GitHub
Sürüm. Artifacts. {alias}. PullRequest.TargetBranch Çekme isteğinin hedefi olan dalnın tam yolu ve adı. Bu değişken yalnızca yayın bir çekme isteği akışı tarafından tetiklendiğinde başlatılır.

Azure Pipelines örnek:refs/heads/main
Sürüm. Artifacts. {alias}. PullRequest.TargetBranchName Yalnızca çekme isteğinin hedefi olan dal adı. Bu değişken yalnızca yayın bir çekme isteği akışı tarafından tetiklendiğinde başlatılır.

Azure Pipelines örnek:main

Ayrıca bkz. Yapıt kaynağı diğer adı

Birincil Yapıt

Yapıtlardan birini yayın işlem hattında birincil yapıt olarak siz olarak atamayız. Belirlenen birincil yapıt için Azure Pipelines aşağıdaki değişkenleri doldurmak için kullanılır.

Değişken adı Ile aynı
Build.DefinitionId Sürüm. Artifacts. {Birincil yapıt diğer adı}. DefinitionId
Build.DefinitionName Sürüm. Artifacts. {Birincil yapıt diğer adı}. DefinitionName
Build.BuildNumber Sürüm. Artifacts. {Birincil yapıt diğer adı}. BuildNumber
Build.BuildId Sürüm. Artifacts. {Birincil yapıt diğer adı}. BuildId
Build.BuildURI Sürüm. Artifacts. {Birincil yapıt diğer adı}. BuildURI
Build.SourceBranch Sürüm. Artifacts. {Birincil yapıt diğer adı}. SourceBranch
Build.SourceBranchName Sürüm. Artifacts. {Birincil yapıt diğer adı}. SourceBranchName
Build.SourceVersion Sürüm. Artifacts. {Birincil yapıt diğer adı}. Sourceversion
Build.Repository.Provider Sürüm. Artifacts. {Birincil yapıt diğer adı}. Repository.Provider
Build.RequestedForID Sürüm. Artifacts. {Birincil yapıt diğer adı}. RequestedForID
Build.RequestedFor Sürüm. Artifacts. {Birincil yapıt diğer adı}. RequestedFor
Build.Type Sürüm. Artifacts. {Birincil yapıt diğer adı}. Türü
Build.PullRequest.TargetBranch Sürüm. Artifacts. {Birincil yapıt diğer adı}. PullRequest.TargetBranch
Build.PullRequest.TargetBranchName Sürüm. Artifacts. {Birincil yapıt diğer adı}. PullRequest.TargetBranchName

Varsayılan değişkenleri kullanma

Varsayılan değişkenleri iki şekilde kullanabilirsiniz: bir yayın işlem hattında veya betikleri kullanarak görevlere parametre olarak.

Varsayılan değişkeni bir göreve giriş olarak doğrudan kullanabilirsiniz. Örneğin, diğer adı Release.Artifacts.{Artifact alias}.DefinitionName ASPNET4 olan yapıt kaynağı Release.Artifacts.{Artifact alias}.DefinitionName göreve CI kullanır, kullanır. $(Release.Artifacts.ASPNET4.CI.DefinitionName)

PowerShell Betik görevi için bağımsız değişkenlerde yapıt değişkenlerini kullanma

Betiğinize varsayılan bir değişken kullanmak için önce varsayılan değişken . adlarında değerini ile değiştirmeniz _ gerekir. Örneğin, diğer adı Release.Artifacts.{Artifact alias}.DefinitionName ASPNET4 olan yapıt kaynağı için yapıt değişkeninin Release.Artifacts.{Artifact alias}.DefinitionName betiğinde CI $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME kullanabilirsiniz.

Satır içi PowerShell betiğinde yapıt değişkenlerini kullanma

Yapıt kaynağı diğer adının özgün adının ile ASPNET4.CI değiştir olduğunu ASPNET4_CI unutmayın.

Tüm değişkenlerin geçerli değerlerini görüntüleme

  1. Yayın özetinin işlem hatları görünümünü açın ve ilgilendiğinizi aşamayı seçin. Adım listesinde Işi başlat'ı seçin.

    Bir yayın için günlüğü açma

  2. Bu işlem, bu adımın günlüğünü açar. Bu iş için aracı tarafından kullanılan değerleri görmek için aşağı kaydırın.

    Yayında değişkenlerin değerlerini görüntüleme

Bir sürümü hata ayıklama modunda çalıştırma

Yayın yürütülürken ve günlük dosyalarında, sürümün tamamını veya yalnızca tek bir yayın aşamasındaki görevleri hata ayıklama modunda çalıştırarak ek bilgileri göster. Bu, sorunları ve hataları çözmenize yardımcı olabilir.

  • Bir sürümün tamamına hata ayıklama modunu başlatmak için, bir yayın işlem hattının Değişkenler sekmesine değeriyle System.Debugtrue adlı bir değişken ekleyin. System.Debug

  • Tek bir aşamada hata ayıklama modunu başlatmak için, aşamanın kısayol menüsünden Aşamayı yapılandır iletişim kutusunu açın ve Değişkenler sekmesine değeriyle adlı bir truetrue ekleyin.

  • Alternatif olarak, değerine sahip adlı bir değişken içeren bir değişken grubu oluşturun ve bu değişken grubunu bir yayın işlem true hattına bağlamanız gerekir.

İpucu

Azure RM hizmet bağlantısıyla ilgili bir hata alırsanız, bkz. Nasıl kullanılır: Hizmet bağlantılarının Azure Resource Manager giderme.

Özel değişkenler

Özel değişkenler çeşitli kapsamlarda tanımlanabilir.

  • Değişken gruplarını kullanarak bir proje içinde tüm tanımlar arasında değerleri paylaşın. Bir proje içinde tüm tanımlar, aşamalar ve görevler arasında aynı değerleri kullanmak ve değerleri tek bir yerde değiştirmek istediğiniz bir değişken grubu seçin. Değişken gruplarını Kitaplık sekmesinde tanımlar ve yönetirsiniz.

  • Yayın işlem hattı değişkenlerini kullanarak tüm aşamalarda değerleri paylaşın. Yayın işlem hattında tüm aşamalarda ve görevlerde aynı değeri kullanmak ve değeri tek bir yerde değiştirmek istediğiniz bir yayın işlem hattı değişkeni seçin. Bu değişkenleri bir yayın işlem hattında Değişkenler sekmesinde tanımlar ve yönetirsiniz. İşlem Hattı Değişkenleri sayfasında Kapsam açılan listesini açın ve "Yayın"ı seçin. Varsayılan olarak, bir değişken eklerken bu değişken Yayın kapsamı olarak ayarlanır.

  • Aşama değişkenlerini kullanarak belirli bir aşamadaki tüm görevlerin değerlerini paylaşın. Aşamadan aşamaya farklılık gösterir (ve bir aşamadaki tüm görevler için aynıdır) değerler için aşama düzeyinde bir değişken kullanın. Bu değişkenleri bir yayın işlem hattının Değişkenler sekmesinde tanımlar ve yönetirsiniz. İşlem Hattı Değişkenleri sayfasında Kapsam açılan listesini açın ve gerekli aşamayı seçin. Bir değişken eklerken Kapsam'ın uygun ortam olarak ayarlayın.

Proje, yayın işlem hattı ve aşama kapsamında özel değişkenleri kullanmak şunları sağlar:

  • Değerlerin çoğaltılmasından kaçının, bu da tüm oluşumların tek bir işlem olarak güncelleştirilsini kolaylaştırır.

  • Hassas değerleri yayın işlem hatlarının kullanıcıları tarafından görüle veya değiştirilene bir şekilde depolar. Değişkenin yanındaki asma kilit (asma kilit) simgesini seçerek bir yapılandırma özelliğini güvenli (gizli) değişken olarak atama.

    Önemli

    Gizli (gizli) değişkenlerin değerleri sunucuda güvenli bir şekilde depolanır ve kaydedildikten sonra kullanıcılar tarafından görüntü olamaz. Dağıtım sırasında, Azure Pipelines yayın hizmeti, görevler tarafından başvurulsa bu değerlerin şifresini çözebilir ve güvenli bir HTTPS kanalı üzerinden aracıya iletir.

Not

Özel değişkenler oluşturmak standart değişkenlerin üzerine yaz olabilir. Örneğin, PowerShell Yolu ortam değişkeni. Windows aracıda özel bir değişken oluşturmanız, değişkenin üzerine Path$env:Path yazacak ve PowerShell çalıştırılamayacak.

Özel değişkenleri kullanma

Derleme ve sürüm görevlerinize özel değişkenler kullanmak için, değişken adını parantez içine atayın ve önüne bir karakter $ ekleyin. Örneğin, adminUserNameadlı bir değişkeniniz varsa, bu değişkenin geçerli değerini bir görevin parametresine olarak eklersiniz.

Not

Aynı kapsamda (örneğin, iş veya aşama) bir işlem hattına bağlı farklı gruplarda değişkenler birlikte kullanılır ve sonuç tahmin edilemez olabilir. Tüm değişken gruplarınız genelinde değişkenler için farklı adlar kullanın.

Betikte değişkenlerinizi tanımlama ve değiştirme

Bir betikten değişken tanımlamak veya değiştirmek için günlük task.setvariable komutunu kullanın. Güncelleştirilmiş değişken değerinin kapsamı yürütülen işin kapsamına göredir ve işler veya aşamalar arasında akmaz. Değişken adları büyük harfe dönüştürülerek "." ve " " karakterleri "_" ile değiştirilir.

Örneğin, Agent.WorkFolderAGENT_WORKFOLDER olur. Bu Windows veya olarak %AGENT_WORKFOLDER%$env:AGENT_WORKFOLDER erişin. Linux ve macOS'ta $AGENT_WORKFOLDER kullanırsanız.

İpucu

Betiği şu komut dosyası üzerinde çalıştırarak:

Batch betiği

ve değişkenlerini secret.Sauce ayarlama

@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic

Değişkenleri okuma

Bağımsız değişkenler

"$(sauce)" "$(secret.Sauce)"

Komut Dosyası

@echo off
set sauceArgument=%~1
set secretSauceArgument=%~2
@echo No problem reading %sauceArgument% or %SAUCE%
@echo But I cannot read %SECRET_SAUCE%
@echo But I can read %secretSauceArgument% (but the log is redacted so I do not spoil
     the secret)

Değişkenleri okumaktan konsol çıktısı:

No problem reading crushed tomatoes or crushed tomatoes
But I cannot read 
But I can read ******** (but the log is redacted so I do not spoil the secret)