Как мне переопределить sh переменные среды для последующих шагов в той же сборке, которая косвенно изменяет эти переменные?
Раздел тестового файла YAML, который воспроизводит описанное поведение.
jobs:
- job: welldone
pool:
name: noodle
steps:
- script: |
echo select TestStand 2016
start /wait "" "C:\Program Files (x86)\National Instruments\Shared\TestStand Version Selector\TSVerSelect.exe" /version 16.0 /installing /noprompt
displayName: 'select TestStand version 16'
- script: |
echo Check TestStand version
echo %TestStand%
call RefreshEnv.cmd
echo %TestStand%
displayName: 'print TestStand version'
- script: |
call checkTSversion.bat
call RefreshEnv.cmd
call checkTSversion.bat
displayName: 'call bat file to print TestStand version'
Первые вызовы сценария Селектор версии TestStand , который изменяет переменные окружения среди прочего.
Второй сценарий печатает переменные среды, начинающиеся с "teststand", затем вызывает refreshenv.cmd и снова печатает переменные. Первая печатает старые переменные, вторая - обновляется. Полагаю, это согласуется с ожидаемым поведением cmd.
3-й скрипт делает то же самое, но теперь echo %TestStand%
находится в отдельном пакетном файле. Он ведет себя точно так же, как второй сценарий.
Что я могу сделать в первом сценарии, чтобы убедиться, что последовательные сценарии будут читать обновленные переменные среды?