I am reading this article: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=classic%2Cbatch#set-in-script
The Powershell script example shown here: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=classic%2Cpowershell#set-a-job-scoped-variable-from-a-script-1
I assume that "Set the sauce and secret.Sauce variables" is one task and "Read the variables" is another task. And that the arguments are passed as task arguments.
If so (that is - value set in one powershell task can be utilized in another powershell task), then, why does the section below this (see https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=classic%2Cpowershell#using-variables-as-task-inputs) advise that:
In order to use a variable as a task input, the variable must be an output variable and you must give the producing task a reference name.
This section (https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch#set-a-multi-job-output-variable) says:
If you want to make a variable available to future jobs, you must mark it as an output variable using isOutput=true.