Вы сказали, что читали документы по переменным среды. Вы читали документы scope ?
Это должно дать вам понимание, которое вы ищете. См. Также , В тот момент, когда вы выполняете оболочку другой программе, этот exe / shell контролирует и использует то, о чем знает.
Если вы создаете системные переменные среды, то они доступны для системы, а не только для ваших сценариев. Обходных путей для этого нет.
Необычный подход, и я не проверял его (поскольку я никогда не использовал этот вариант использования, который требовал этого), заключается в использовании переменных среды пользователя или процесса ,
$CurrentDate = Get-Date -format yyyyMMdd
[Environment]::SetEnvironmentVariable("CYCLEDATEB", $CurrentDate, "User")
$CurrentDate = Get-Date -format yyyyMMdd
[Environment]::SetEnvironmentVariable("CYCLEDATEB", $CurrentDate, "Process")
тогда, конечно, они доступны только для этого пользователя. Любой дочерний процесс, который является другим пользователем, конечно, не увидит их, но для этого вам придется переустановить логику и путь кода.